tag:blogger.com,1999:blog-44210477687387808882024-03-20T01:24:21.684-07:00Articoli ferramentaAnonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-4421047768738780888.post-27520636835654888942013-09-07T00:27:00.002-07:002013-09-07T00:28:05.983-07:00Banco falegname, table carpenter, Tabelle SchreinerSuper vendita banco falegname,<br />
restaurato,<br />
<br />
<span class="short_text" id="result_box" lang="en"><span class="hps">Super</span> <span class="hps">sale</span> <span class="hps">bench</span> <span class="hps">carpenter,</span><span class="hps"> </span></span><br />
<span class="short_text" id="result_box" lang="en"><span class="hps">restored</span><span class="">,</span></span><br />
<br />
<span class="short_text" id="result_box" lang="de"><span class="hps">Super Sale</span> <span class="hps">Bank</span> <span class="hps">Zimmermann,</span><span class="hps"> </span></span><br />
<span class="short_text" id="result_box" lang="de"><span class="hps">restauriert,</span></span><br />
<a href="http://www.hobbyferramenta.weebly.com/" target="_blank">desing home</a><br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgrLXV0SvGaL53Tz8dcxSw0XDLSNEBui4LpMlKLmmS-e5fxv81LZCgblvE5g4ljq7NvBlQecBQk6G9MTmuoUwXjxtKHRUGUqPd2ARD5Q5x7H7pesxH0FyJeK1EZFXF9skAjse5bWOt5aYT/s1600/banco+falegname.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgrLXV0SvGaL53Tz8dcxSw0XDLSNEBui4LpMlKLmmS-e5fxv81LZCgblvE5g4ljq7NvBlQecBQk6G9MTmuoUwXjxtKHRUGUqPd2ARD5Q5x7H7pesxH0FyJeK1EZFXF9skAjse5bWOt5aYT/s1600/banco+falegname.JPG" height="300" width="400" /></a></div>
<br />
<br />
Su richiesta, informazioni sul restauro<br />
<br />
<span class="short_text" id="result_box" lang="en"><span class="hps">Upon request, information</span> <span class="hps">on the restoration</span></span><br />
<br />
<span class="short_text" id="result_box" lang="en"><span class="hps"></span></span><span class="short_text" id="result_box" lang="de"><span class="hps">Auf Wunsch</span> <span class="hps">Informationen über die</span> <span class="hps">Restaurierung</span></span>Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0tag:blogger.com,1999:blog-4421047768738780888.post-42542341783811001552013-03-24T08:51:00.004-07:002013-03-24T08:51:50.379-07:00Copia di una storica maniglia- Copy of an old handle - Копия старой ручкойUna decina di anni fà, era l'anno 2000, abbandonata, in una fonderia, ho trovato<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVOYHYxjeOtGa0PxVhoo03FjjBg1KzTQ2oq7k5ylzqPMsa1zf-7DwKtyqHepw6dG1Hzgd7-61NQUW_1RxYxhvwjpOPsrHDSnF_llAttwUABhFbZ7HbS1oAOPdOm1PdH48ZIcB662l6WIOx/s1600/officina-colata_ghisa.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVOYHYxjeOtGa0PxVhoo03FjjBg1KzTQ2oq7k5ylzqPMsa1zf-7DwKtyqHepw6dG1Hzgd7-61NQUW_1RxYxhvwjpOPsrHDSnF_llAttwUABhFbZ7HbS1oAOPdOm1PdH48ZIcB662l6WIOx/s1600/officina-colata_ghisa.JPG" height="175" width="200" /></a>un impugnatura di una grande <a href="http://www.hobbyferramenta.weebly.com/maniglione%20storico" target="_blank">maniglia</a> per portoni del passato.<br />
Probabilmente, era già una copia, ma ancora in discrete condizioni.<br />
Un impugnatura per una maniglia non serve a nulla, sè non ha una placca o una rosetta di fissaggio.<br />
<br />
<br />
<br />
<br />
<br />
<br />
Nello stesso periodo, forse anche per caso, mi sono imbattuto in una placca,<br />
di grandi dimensioni,fissata su un portone antico, che faceva il caso mio.<br />
La placca è molto sottile prodotta da una lama di ottone, perciò ho pensato<br />
di aumentare lo spessore e fondere.<br />
<br />
Col aiuto di un modellista, abbiamo realizzato il modello e fusa<br />
<br />
La maniglia, messa in esposizione presso la <a href="http://www.hobbyferramenta.weebly.com/" target="_blank">ferramenta famigliare</a>, ha attirato l'attenzione<br />
di una signora, alla quale la maniglia piaceva, ma desiderava la stessa con rosetta.<br />
<br />
Contattai il modellista e dopo alcuni tentativi, siamo riusciti a individuare il modello,<br />
che soddisfava tutti.<br />
<br />
Caratteristiche per produrre una maniglia in ottone.<br />
<br />
La prima cosa, da fare è produrre le anime in sabbia per il quadro centrale da 8 mm.<br />
<br />
Poi passiamo nella parte fonderia, veranno prodotte le impronte dello stampo e<br />
versato al interno il metallo fuso.<br />
<br />
La parte successiva è impegnativa, sgrezzatura iniziale, limatura delle parti di metallo in<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1fioOhtOHqetRH3XhTGq6nGoJFswztzEoK49u0N2mkQv9oK691RR3lcwmc-pbJGQVURBdq5XfU3Ko9ZtuO5nSFC-9VZYt15ska8lnFCF0zp2E9BtdvoY866b-LHVLiD_TSLLoDjddfTz5/s1600/1.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1fioOhtOHqetRH3XhTGq6nGoJFswztzEoK49u0N2mkQv9oK691RR3lcwmc-pbJGQVURBdq5XfU3Ko9ZtuO5nSFC-9VZYt15ska8lnFCF0zp2E9BtdvoY866b-LHVLiD_TSLLoDjddfTz5/s1600/1.JPG" height="240" width="320" /></a>eccesso con eliminazione del metallo sulla mezzaria, foratura -dove richiesta e filettatura<br />
per la sistemazione del grano di blocco maniglia-quadro.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Ora si passa alla pulizia finale<br />
<br />
Il metallo ha un infinita di punti e di striscie superficiali, che devono essere completamente<br />
rimosse per ottenere una superficie a specchio.<br />
La fusione, sbavatura e lucidatura sono 3 processi importantissimi per raggiungere<br />
alta qualità della maniglia.<br />
Notiamo subito, sè un processo produttivo non è stato rispettato e seguito nei minimi dettagli.<br />
<br />
<h3 class="western" style="background: #ffffff;">
<span style="font-family: Engravers MT, serif;"><span style="font-size: xx-small;"><span style="color: #ff3333;"><span style="font-weight: medium;"></span></span><br /></span></span></h3>
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb6O3DDpmZOPlhCHcXfTWfrhGOydZjtzCEA6Ccpw23VYctExwsNkYGIGvb5bVckvm0anxLI9NsJZQmPNY2h1qZNMPwbDFt2T_fVehSBia86qb7TyJVTtlrzLnSAK-YgwrCyvG38agi76KA/s1600/pulizia.JPG" height="400" width="300" /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Peso della maniglia impugnatura e placca grammi 1120, completa grammi 2240<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnpXBELRjki0kfSd0FivaJsYor-mO5Vt0vVFdhLOveWDqetMlUxyXyxedlL_5XjPsOKxp00F4Tzl4m1Q89tZmkwCDhL9OFZaUloe33KdkjdYunitkFngncG6DsCC2cOdgJVQz9WpW5ga0f/s1600/bandiera_inglese.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnpXBELRjki0kfSd0FivaJsYor-mO5Vt0vVFdhLOveWDqetMlUxyXyxedlL_5XjPsOKxp00F4Tzl4m1Q89tZmkwCDhL9OFZaUloe33KdkjdYunitkFngncG6DsCC2cOdgJVQz9WpW5ga0f/s1600/bandiera_inglese.png" /></a></div>
<br />
<span class="" id="result_box" lang="en"><span class="hps">A decade</span> <span class="hps">ago,</span> <span class="hps">it was the year</span> <span class="hps">2000,</span> <span class="hps">abandoned</span> <span class="hps">in a foundry</span><span class="">, I found</span></span><br />
<span class="" id="result_box" lang="en"><span class=""> </span></span><span class="" id="result_box" lang="en"><span class="hps">a</span> <span class="hps"><a href="http://www.hobbyferramenta.weebly.com/" target="_blank">handle</a> of a</span> <span class="hps">large handle</span> <span class="hps">for doors</span> <span class="hps">of the past</span><span>.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">May even have</span> <span class="hps">a copy, but</span> <span class="hps">still</span> <span class="hps">in good condition.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps"></span></span><span class="" id="result_box" lang="en"><span class="hps"></span></span><span class="" id="result_box" lang="en"><span class="hps">A</span> <span class="hps">handle to</span> <span class="hps">handle</span> <span class="hps">is useless</span><span>,</span> <span class="hps">itself has</span> <span class="hps">a plate or</span> <span class="hps">a rosette</span> <span class="hps">fixing</span><span class="">.</span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhawwFkV3ZxxLF4aLiSH7c97b6IUzDwA9OaaF72m28OXH4obTX6SQILO5LuMzkcfml9Ixi_DOXzYvdws3lJEVz5GfMH-lwABDyC-Hylb5joBxKkDa5JKvJMn4c-5L2AYxYtQpkc-7GZX3r/s1600/2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhawwFkV3ZxxLF4aLiSH7c97b6IUzDwA9OaaF72m28OXH4obTX6SQILO5LuMzkcfml9Ixi_DOXzYvdws3lJEVz5GfMH-lwABDyC-Hylb5joBxKkDa5JKvJMn4c-5L2AYxYtQpkc-7GZX3r/s1600/2.JPG" height="240" width="320" /></a></div>
<br />
<span class="" id="result_box" lang="en"><span class="hps">At the same time</span><span>,</span> <span class="hps">perhaps</span> <span class="hps">by chance, I</span> <span class="hps">came across a</span> <span class="hps">plaque,</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">large</span><span>,</span> <span class="hps">fixed to a</span> <span class="hps">gate of the old</span><span>, which was</span> <span class="hps">my case.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">The plate is</span> <span class="hps">produced by a</span> <span class="hps">very thin</span> <span class="hps">blade</span> <span class="hps">of</span> <span class="hps">brass</span><span>, so I thought</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">to increase the thickness</span> <span class="hps">and</span> <span class="hps">melt</span><span>.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">With the</span> <span class="hps">help of a</span> <span class="hps">modeller,</span> <span class="hps">we</span> <span class="hps">developed the model</span> <span class="hps">and merged</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">The handle is</span> <span class="hps">put</span> <span class="hps">on display at</span> <span class="hps">the hardware</span> <span class="hps">family</span><span>,</span> <span class="hps">has attracted the attention</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">of a woman,</span> <span class="hps">to which</span> <span class="hps">the handle</span> <span class="hps">like it, but</span> <span class="hps">wanted</span> <span class="hps">the same</span> <span class="hps">with</span> <span class="hps">rosette.</span><br /><span class="hps">I contacted the</span> <span class="hps">modeller and</span> <span class="hps">after a few attempts</span><span>,</span> <span class="hps">we were able to</span> <span class="hps">identify</span> <span class="hps">the model,</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">that</span> <span class="hps">found to meet all</span><span>.</span><br /><span class="hps">Characteristics</span> <span class="hps">to produce</span> <span class="hps">a</span> <span class="hps">brass handle</span><span>.</span><br /><span class="hps">The first thing</span> <span class="hps">to do is to</span> <span class="hps">produce the</span> <span class="hps">sand cores</span> <span class="hps">for</span> <span class="hps">the center console</span> <span class="hps">to</span> <span class="hps">8 mm.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">Then we go</span> <span class="hps">in the</span> <span class="hps">foundry</span> <span class="hps">messages will be</span> <span class="hps">produced</span> <span class="hps">fingerprints</span> <span class="hps">of the mold and</span><br /><span class="hps">paid to the</span> <span class="hps">internal</span> <span class="hps">molten metal.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">The next part</span> <span class="hps">is tough,</span> <span class="hps">sgrezzatura</span> <span class="hps">initial</span> <span class="hps">filings</span> <span class="hps">of metal parts</span> <span class="hps">in</span></span><br />
<span class="" id="result_box" lang="en"><span class="hps"> </span></span><span class="" id="result_box" lang="en"><span class="hps">with</span> <span class="hps">removal of</span> <span class="hps">excess</span> <span class="hps">metal on the</span> <span class="hps">center line</span><span class="">, drilling</span> <span class="hps">and</span> <span class="hps">thread</span><span class="atn">-</span><span>where required</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">for the accommodation</span> <span class="hps">of the</span> <span class="hps">locking dowel</span> <span class="hps">handle</span><span class="atn">-</span><span class="">framework</span><span class="">.</span></span><br />
<span class="" id="result_box" lang="en"><span class=""> </span></span><span class="" id="result_box" lang="en"><span class="hps">Now we move on</span> <span class="hps">to the</span> <span class="hps">final cleaning</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">The metal</span> <span class="hps">has</span> <span class="hps">an</span> <span class="hps">infinite number of</span> <span class="hps">points</span> <span class="hps">and</span> <span class="hps">surface</span> <span class="hps">strips</span><span>,</span> <span class="hps">which must</span> <span class="hps">be</span> <span class="hps">fully</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">removed</span> <span class="hps">to obtain</span> <span class="hps">a mirror surface</span><span>.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">The merger</span><span>, deburring and polishing</span> <span class="hps">processes</span> <span class="hps">are 3</span> <span class="hps">very important</span> <span class="hps">to achieve</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">high</span> <span class="hps">quality</span> <span class="hps">of the handle</span><span>.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">We note immediately</span><span>,</span> <span class="hps">itself</span> <span class="hps">a production process</span> <span class="hps">was not respected</span> <span class="hps">and followed</span> <span class="hps">in detail</span></span><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisiOXn1DSKb_ltP6xdMKhy3tQxyi7nWJ_gLzZyQvZ7OyFCGbqZtEVD3kSPhWdo6qbXPeGQCB_oWMaoB0go10MoVuam0qZVl71edTceIiY27fQlSlYAuxYnFykn9dCLpxSX1hqrE5tBY3kY/s1600/pla3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisiOXn1DSKb_ltP6xdMKhy3tQxyi7nWJ_gLzZyQvZ7OyFCGbqZtEVD3kSPhWdo6qbXPeGQCB_oWMaoB0go10MoVuam0qZVl71edTceIiY27fQlSlYAuxYnFykn9dCLpxSX1hqrE5tBY3kY/s1600/pla3.JPG" height="320" width="240" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc3HEJcAlk_xg5-_CkvNLfWOluVN3J4jH1D_372qTuh646HziJqlkBc1kDpxznhlks2PnP2NOHwE_wVAhif2-4NiNCry_-Gs4o0NUij1P3g7JrVheWBG0-9TZ_HGW-bP26VdA59HXvDtbs/s1600/Bandiera_russa.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc3HEJcAlk_xg5-_CkvNLfWOluVN3J4jH1D_372qTuh646HziJqlkBc1kDpxznhlks2PnP2NOHwE_wVAhif2-4NiNCry_-Gs4o0NUij1P3g7JrVheWBG0-9TZ_HGW-bP26VdA59HXvDtbs/s1600/Bandiera_russa.png" /></a></div>
<br />
<span class="" id="result_box" lang="en"><span class="hps"> </span></span><span class="" id="result_box" lang="ru"><span class="">Десять лет назад</span><span>, это был</span> <span class="hps">2000 год</span><span>, брошенных</span> <span class="hps">в литейном цехе,</span> <span class="hps">я обнаружил,</span> </span><br />
<span class="" id="result_box" lang="ru"> <span class="">Ручка</span> <span class="hps">большая</span> <span class="hps">ручка для</span> <span class="hps">двери</span> <span class="hps">в прошлое.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">Может даже</span> <span class="hps">есть копия</span><span>, но все еще</span> <span class="hps">в хорошем состоянии.</span><span class=""> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="">Ручка</span> <span class="hps">для обработки</span> <span class="hps">бесполезно,</span> <span class="hps">сама по себе имеет</span> <span class="hps">пластины или</span> <span class="hps">розетки</span> <span class="hps">крепления.</span></span><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDbnJtIb0Dy1f2SAr5V_wX1NBhdjXy32kZFq8e5PIpU-MmiyGUsPQUx6r7r8buW61o4idpoxqZFblUcDR2vL46XHnnCYWUCDB0aIuvEScG5s_oVgQiQ1wiiYTfbbSAGeV3S26867tLKsqO/s1600/z.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDbnJtIb0Dy1f2SAr5V_wX1NBhdjXy32kZFq8e5PIpU-MmiyGUsPQUx6r7r8buW61o4idpoxqZFblUcDR2vL46XHnnCYWUCDB0aIuvEScG5s_oVgQiQ1wiiYTfbbSAGeV3S26867tLKsqO/s1600/z.JPG" height="320" width="240" /></a></div>
<br />
<span class="" id="result_box" lang="ru"><span class="hps"> </span></span><span class="" id="result_box" lang="ru"><span class="hps">В то же время</span><span>, возможно,</span> <span class="hps">случайно,</span> <span class="hps">я наткнулся на</span> <span class="hps">доску,</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">большие,</span> <span class="hps">фиксированные</span> <span class="hps">в</span> <span class="hps">ворота старого</span><span>, который</span> <span class="hps">был мой случай.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">Пластина</span> <span class="hps">производится</span> <span class="hps">очень</span> <span class="hps">тонким лезвием</span> <span class="hps">из латуни,</span> <span class="hps">поэтому я подумал,</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">для увеличения толщины</span> <span class="hps">и</span> <span class="hps">расплавиться.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">С помощью</span> <span class="hps">модельер</span><span class="">, мы разработали</span> <span class="hps">модель и</span> <span class="hps">объединены</span><span class=""> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="">Ручка</span> <span class="hps">выставлены</span> <span class="hps">на аппаратном</span> <span class="hps">семьи,</span> <span class="hps">привлекла к себе внимание</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">о женщине</span><span>, к которой</span> <span class="hps">ручка</span> <span class="hps">нравится, но</span> <span class="hps">хотелось</span> <span class="hps">то же самое с</span> <span class="hps">розеткой.</span><br /><span class="hps">Я связался с</span> <span class="hps">модельером</span><span>, и после нескольких</span> <span class="hps">попыток, мы</span> <span class="hps">смогли определить</span> <span class="hps"> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">модель,</span><span class="hps"> что</span> <span class="hps">нашел</span> <span class="hps">для удовлетворения всех</span><span>.</span><br /><span class="hps">Характеристики</span> <span class="hps">для производства</span> <span class="hps">медной</span> <span class="hps">ручкой.</span><br /><span class="hps">Первое, что нужно</span> <span class="hps">сделать, это</span> <span class="hps">произвести</span> <span class="hps">песчаных стержней</span> <span class="hps">на</span> <span class="hps">центральной</span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">консоли</span> <span class="hps">до 8 мм.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">Тогда мы идем</span> <span class="hps">в литейном</span> <span class="hps">сообщения</span> <span class="hps">будет производиться</span> <span class="hps">отпечатки пальцев</span> <span class="hps">формы и</span><br /><span class="hps">уделяться</span> <span class="hps">внутренним</span> <span class="hps">расплавленного металла.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">Следующим важным моментом является</span> <span class="hps">жестким,</span> <span class="hps"> </span></span><span class="" id="result_box" lang="ru"><span class="hps"> </span> <span class="hps">начальных</span> <span class="hps">заявок</span> <span class="hps">металлических</span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">деталей</span> <span class="hps">в</span> <span class="hps">с</span> <span class="hps">удалением избытка</span> <span class="hps">металла на</span> <span class="hps">центральной линии,</span> <span class="hps">бурение и</span> <span class="hps">потоков</span> <span class="hps">в </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">случае необходимости</span><span class="hps"> для размещения</span> <span class="hps">фиксирующего</span> <span class="hps">штифта</span> <span class="hps atn">ручки-</span><span>рамки.</span><br /><span class="hps">Теперь мы</span> <span class="hps">переходим к</span> <span class="hps">заключительной уборки</span><span class=""> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="">Металл имеет</span> <span class="hps">бесконечное число точек</span> <span class="hps">и поверхности</span> <span class="hps">полосы, которые</span> <span class="hps">должны быть полностью</span><span class="hps"> удаляют для получения</span> <span class="hps">зеркальной поверхности.</span><span class=""> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="">Слияние</span><span>, удаление заусенцев</span> <span class="hps">и полировки</span> <span class="hps">процессов</span> <span class="hps">3 очень</span> <span class="hps">важно для достижения</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">Высокое качество</span> <span class="hps">ручки.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="ru"><span class="hps">Отметим сразу</span><span>, сам</span> <span class="hps">процесс производства</span> <span class="hps">не</span> <span class="hps">уважать и соблюдать</span> <span class="hps">подробнее</span></span><br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeme4-o8Akuvx6eHwabX871_qZkQdh4mI74oxph-2px5XDaYtskS9crIFv9Asdi8R6rSV80GufOx3cT4jK0voMzPMsxm6yjAd4QejPh_4SFnJlcC841gpFju2pPbFtKZa8WIPJtmiphLqZ/s1600/y.JPG" height="300" width="400" /></div>
<span class="" id="result_box" lang="en"><span class="hps"> </span></span><span class="" id="result_box" lang="en"><span class="hps"> </span></span><br />
Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0Via Giosuè Carducci, 32, 34170 Gorizia GO, Italia45.9478623 13.6262265000000320.425827799999997 -27.68236749999997 71.4698968 54.934820500000029tag:blogger.com,1999:blog-4421047768738780888.post-34485049479779856922012-12-10T09:04:00.000-08:002012-12-10T09:04:24.455-08:00Spessori alzaporte o finestre Shims lift up doors or windows регулировочных прокладок поднимите дверей или окон Problemi con porte e finestre?<br />
<br />
Abbiamo due possibilita per regolare porte o finestre in<a href="http://www.riparacasa.blogspot.com/" target="_blank"> legno</a> con cerniere tradizionali Anuba.<br />
<br />
Prima possibilita:<br />
<br />
girare nella parte alta o bassa la cerniere sul telaio o sulla porta.<br />
Dipende tutto dalla possibilita di regolazione.<br />
<br />
Seconda possibilita:<br />
<br />
spessorare le cerniere per alzare la porta, se, tocca per terra o se tocca il telaio in chiusura,<br />
se è una finestra.<br />
<br />
I spessori sono di ottone,<br />
materiale sogetto a consumo, e, non consuma la cerniera.<br />
In apertura le finestre o porte non cigolano. <br />
<br />
<br />
Misure per fineste 8 mm, 9 mm<br />
<br />
per porte 10 mm, 11mm, 12 mm, 13 mm, 14 mm<br />
<br />
Esistono misure superiori, usate per cerniere portoni ingresso.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA4E5nAgKZrp4kBjmqa3SoYxAPpTQJseZTTxlDB-mygHbpRuwRnOvCOxZE7VjDaS1-96P0wuwoP5MG7BSCD3eY_jlO3dO0TPDUq91MLbI6MoL8dTrGy41TrDe4vmO8kPPIdoldQFjURqHn/s1600/spessori.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA4E5nAgKZrp4kBjmqa3SoYxAPpTQJseZTTxlDB-mygHbpRuwRnOvCOxZE7VjDaS1-96P0wuwoP5MG7BSCD3eY_jlO3dO0TPDUq91MLbI6MoL8dTrGy41TrDe4vmO8kPPIdoldQFjURqHn/s1600/spessori.JPG" height="640" width="480" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb0Vihozg0BNnyMD8fbJwwidGFQpAxhCiiXke9ADlKQaMzZAOa_srXDO-hnMQWxOtygsNheC6MJ9MqKXyg8lnI5sLLSoR0w2lkVY7OTFW56bXXi38ITuKqjDykypxUR9HAIJI0ZV8SQC1v/s1600/bandiera_inglese.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb0Vihozg0BNnyMD8fbJwwidGFQpAxhCiiXke9ADlKQaMzZAOa_srXDO-hnMQWxOtygsNheC6MJ9MqKXyg8lnI5sLLSoR0w2lkVY7OTFW56bXXi38ITuKqjDykypxUR9HAIJI0ZV8SQC1v/s1600/bandiera_inglese.png" /></a></div>
<br />
<br />
<br />
<br />
<span class="" id="result_box" lang="en"><span class="hps">Problems with</span> <span class="hps">windows and doors?</span><br /><br /><span class="hps">We have</span> <span class="hps">two possibilities</span> <span class="hps">to adjust</span> <span class="hps">doors and</span> <span class="hps">wooden windows with</span> <span class="hps">conventional hinges</span> <span class="hps">Anuba</span>.<br /><br /><span class="hps">First</span> <span class="hps">possibility:</span><br /><br /><span class="hps">run in the</span> <span class="hps">top or bottom of</span> <span class="hps">the</span> <span class="hps">hinges</span> <span class="hps">on the frame or</span> <span class="hps">on the door.</span><br /><br /><span class="hps">It all depends on</span> <span class="hps">the possibility</span> <span class="hps">of</span> <span class="hps">adjustment.</span><br /><br /><span class="hps">Second chance</span>:<br /><br /><span class="hps">shimming</span> <span class="hps">the hinges</span> <span class="hps">to lift</span> <span class="hps">the door</span>, <span class="hps">if</span>, <span class="hps">touches</span> <span class="hps">the ground</span> <span class="hps">or</span> <span class="hps">if it touches the</span> <span class="hps">frame</span> <span class="hps">closure</span>,<br /><br /><span class="hps">if it is</span> <span class="hps">a window.</span><br /><br /><span class="hps">The</span> <span class="hps">spacers</span> <span class="hps">are made of brass</span>,<br /><br /><span class="hps">UNLIMITED PARTNERSHIP</span> <span class="hps">material</span> <span class="hps">to</span> <span class="hps">use,</span> <span class="hps">and</span> <span class="hps">does not consume</span> <span class="hps">the zipper.</span><br /><br /><span class="hps">In</span> <span class="hps">opening</span> <span class="hps">the windows</span> <span class="hps">or</span> <span class="hps">doors do not</span> <span class="hps">squeak</span>.<br /><br /><span class="hps">Windows all</span> <span class="hps">measures</span> <span class="hps">8 mm, 9</span> <span class="hps">mm</span><br /><br /><span class="hps">for doors</span> <span class="hps">10 mm,</span> <span class="hps">11 mm</span>, 12 <span class="hps">mm, 13</span> <span class="hps">mm, 14</span> <span class="hps">mm</span><br /><br /><span class="hps">There are</span> <span class="hps">larger sizes</span><span class="">, use</span> <span class="hps">the zipper</span> <span class="hps">entry</span> <span class="hps">doors</span>.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_L8WlFphiYL-PfmSszUGYaeYDlP7RXEEwGsjmv-Ay6sS2l5AZbIZ823RuQlLRY-3jSrqbeIqMvD0ILFJlRJcOaxi6jHnRdTPfsQIufMibzuCq4xn8QfJvbrJlOb9quVGtq6jbSYMx_9QM/s1600/Bandiera_russa.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_L8WlFphiYL-PfmSszUGYaeYDlP7RXEEwGsjmv-Ay6sS2l5AZbIZ823RuQlLRY-3jSrqbeIqMvD0ILFJlRJcOaxi6jHnRdTPfsQIufMibzuCq4xn8QfJvbrJlOb9quVGtq6jbSYMx_9QM/s1600/Bandiera_russa.png" /></a></div>
<br />
<br />
<br />
<span class="" id="result_box" lang="en"> </span><span class="" id="result_box" lang="en"><span class="hps">Problems with</span> <span class="hps">windows and doors?</span><br /><br /><span class="hps">We have</span> <span class="hps">two possibilities</span> <span class="hps">to adjust</span> <span class="hps">doors and</span> <span class="hps">wooden windows with</span> <span class="hps">conventional hinges</span> <span class="hps">Anuba</span>.<br /><br /><span class="hps">First</span> <span class="hps">possibility:</span><br /><br /><span class="hps">run in the</span> <span class="hps">top or bottom of</span> <span class="hps">the</span> <span class="hps">hinges</span> <span class="hps">on the frame or</span> <span class="hps">on the door.</span><br /><br /><span class="hps">It all depends on</span> <span class="hps">the possibility</span> <span class="hps">of</span> <span class="hps">adjustment.</span><br /><br /><span class="hps">Second chance</span>:<br /><br /><span class="hps">shimming</span> <span class="hps">the hinges</span> <span class="hps">to lift</span> <span class="hps">the door</span>, <span class="hps">if</span>, <span class="hps">touches</span> <span class="hps">the ground</span> <span class="hps">or</span> <span class="hps">if it touches the</span> <span class="hps">frame</span> <span class="hps">closure</span>,<br /><br /><span class="hps">if it is</span> <span class="hps">a window.</span><br /><br /><span class="hps">The</span> <span class="hps">spacers</span> <span class="hps">are made of brass</span>,<br /><br /><span class="hps">UNLIMITED PARTNERSHIP</span> <span class="hps">material</span> <span class="hps">to</span> <span class="hps">use,</span> <span class="hps">and</span> <span class="hps">does not consume</span> <span class="hps">the zipper.</span><br /><br /><span class="hps">In</span> <span class="hps">opening</span> <span class="hps">the windows</span> <span class="hps">or</span> <span class="hps">doors do not</span> <span class="hps">squeak</span>.<br /><br /><span class="hps">Windows all</span> <span class="hps">measures</span> <span class="hps">8 mm, 9</span> <span class="hps">mm</span><br /><br /><span class="hps">for doors</span> <span class="hps">10 mm,</span> <span class="hps">11 mm</span>, 12 <span class="hps">mm, 13</span> <span class="hps">mm, 14</span> <span class="hps">mm</span><br /><br /><span class="hps">There are</span> <span class="hps">larger sizes</span><span class="">, use</span> <span class="hps">the zipper</span> <span class="hps">entry</span> <span class="hps">doors</span>.</span><br />
<br />
<br />
<br />
<br />
<script type="text/javascript"><!--
google_ad_client = "ca-pub-7078611829181357";
/* hobbyferramenta */
google_ad_slot = "9502009925";
google_ad_width = 728;
google_ad_height = 90;
//</script>
-->
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0Via Giosuè Carducci, 32, 34170 Gorizia GO, Italia45.9478623 13.626226545.9464823 13.623759 45.949242299999995 13.628694tag:blogger.com,1999:blog-4421047768738780888.post-46379267406922207602012-11-17T08:15:00.000-08:002012-11-17T08:18:14.614-08:00Negozio classico, và online<script language="JavaScript" src="http://vhss-d.oddcast.com/vhost_embed_functions_v2.php?acc=3116142&js=1" type="text/javascript"></script><script language="JavaScript" type="text/javascript">AC_VHost_Embed(3116142,300,400,'',1,1, 2270968, 0,1,0,'103e269a69612576ad8d2466c30721a2',9);</script>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmAE606s5lBkBRhDr-vRxtuehEdsHmAvULiOLb_gTTqN5sDhB-TFBuu0ncmECRB-SORAHblEeX1SWXjI_KtncjhdLIVujbgZnHTN5vOPJz8CiOdwM3twbyK89mjtvKkRVwaE3_TN6IPEZ_/s1600/hobby+negozio2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmAE606s5lBkBRhDr-vRxtuehEdsHmAvULiOLb_gTTqN5sDhB-TFBuu0ncmECRB-SORAHblEeX1SWXjI_KtncjhdLIVujbgZnHTN5vOPJz8CiOdwM3twbyK89mjtvKkRVwaE3_TN6IPEZ_/s1600/hobby+negozio2.JPG" height="240" width="320" /></a></div>
Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0Via Giosuè Carducci, 32, 34170 Gorizia GO, Italia45.9478623 13.626226545.9464823 13.623759 45.949242299999995 13.628694tag:blogger.com,1999:blog-4421047768738780888.post-7959934725739146292012-10-27T01:24:00.001-07:002012-10-27T01:24:51.965-07:00Articoli ferramenta: Tubo appendiabito........in armadio quale? Pipe h...<a href="http://hobbyferramenta.blogspot.com/2012/10/www.hobbyferramenta.com.html?spref=bl">Articoli ferramenta: Tubo appendiabito........in armadio quale? Pipe h...</a>: Dormo tranquillo......... e un boato dal armadio mi sveglia. Spaventato, vado a vedere cosa è successo? Apro l'anta dell' armadio e ved...Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0tag:blogger.com,1999:blog-4421047768738780888.post-32393141081172714142012-10-27T01:02:00.000-07:002012-10-27T01:14:55.409-07:00Tubo appendiabito........in armadio quale? Pipe hanger ........ cabinet which one?Dormo tranquillo.........<br />
e un boato dal armadio mi sveglia.<br />
Spaventato,<br />
vado a vedere cosa è successo?<br />
<br />
Apro l'anta dell' armadio e vedo gli abiti a terra.<br />
<br />
I <a href="http://www.hobbyferramenta.com/" target="_blank">supporti</a> del tubo - appendi abiti- si sono rotti.<br />
<br />
Come mai?<br />
<br />
La maggior parte delle volte, i produttori di arrdamento ( economico) speculano su questi particolari,<br />
usando supporti in plastica.<br />
<br />
Sembra di no, gli abiti pesano e il peso è distribuito alle due estremità del tubo.<br />
Normale, dopo qualche anno, cedono.<br />
<br />
Consiglio<br />
<br />
Usare supporti laterali in <b>metallo</b><br />
<br />
Il tubo deve essere <a href="http://www.hobbyferramenta.com/" target="_blank">OVALE</a> ( meccanicamente, rigido) ,praticamente non flette.<br />
Usando un tubo TONDO, le due estremita vengono maggiormente sollecitate,<br />
il Tondo flette in centro<br />
<br />
Con un Tubo di 2 metri è consigliabile aggiungere un supporto centrale<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirehcjzV2-7S8xbPtSJn7UuDIe8xxieM8BNwTgtet1s9HBdU_ST4y-ZAh9PiQaW_h2Oi80HyDUOSHVHEN1BG7pcPpUTl-mNxEKurD_utaBIRhDdhlhpbDpDRoecTAsBFfJl_Z-IWdpMNek/s1600/14.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span class="" id="result_box" lang="en"><span class="hps"></span><span class="hps"></span><span class="hps"></span><span class="hps"></span><span class="hps"></span><span class="hps"></span><span class="hps"></span><span class="hps"></span><span class="hps"></span><span class="hps"></span><span></span><span class="hps"></span><span class="hps"></span><span class="hps"></span><span class="hps atn"></span><span></span><span class="hps"></span><span class="hps"></span><span></span><span class="hps"></span><span class="hps"></span><span class="hps"></span><span class="hps"></span><span class="atn"></span><span></span><span class="hps"></span></span><br /></a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirehcjzV2-7S8xbPtSJn7UuDIe8xxieM8BNwTgtet1s9HBdU_ST4y-ZAh9PiQaW_h2Oi80HyDUOSHVHEN1BG7pcPpUTl-mNxEKurD_utaBIRhDdhlhpbDpDRoecTAsBFfJl_Z-IWdpMNek/s1600/14.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirehcjzV2-7S8xbPtSJn7UuDIe8xxieM8BNwTgtet1s9HBdU_ST4y-ZAh9PiQaW_h2Oi80HyDUOSHVHEN1BG7pcPpUTl-mNxEKurD_utaBIRhDdhlhpbDpDRoecTAsBFfJl_Z-IWdpMNek/s1600/14.JPG" height="300" width="400" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6EJwydoDMDfWeZ6h7okcfrho80OGXcSyxdve1gqS5DbwTD_k5suJcQBnWrfXna5NDJIMUF-Bg_qpA7gX0DsRyMSWfilhKlGYNJgRihE3UBirO6gubxqdaQkRAdLkfOpwdP4OyvJ_OTyce/s1600/bandiera_inglese.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6EJwydoDMDfWeZ6h7okcfrho80OGXcSyxdve1gqS5DbwTD_k5suJcQBnWrfXna5NDJIMUF-Bg_qpA7gX0DsRyMSWfilhKlGYNJgRihE3UBirO6gubxqdaQkRAdLkfOpwdP4OyvJ_OTyce/s1600/bandiera_inglese.png" /></a><br />
<br />
<br />
<br />
<span class="" id="result_box" lang="en"><span class="hps">Quiet</span> <span class="hps">sleep</span> <span class="hps">.........</span><br /><br /><span class="hps">and</span> <span class="hps">a roar</span> <span class="hps">from the closet</span> <span class="hps">wakes me up.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">frightened,</span><br /><br /><span class="hps">I'm going to</span> <span class="hps">see what happened</span><span>?</span><br /><br /><span class="hps">I open the</span> <span class="hps">door</span> <span class="hps">of the</span> <span class="hps atn">'</span><span>closet</span> <span class="hps">and see the</span> <span class="hps">clothes on the floor</span><span>.</span><br /><br /><span class="hps">The</span> <span class="hps">hose holders</span> <span class="hps">-</span> <span class="hps">hangers</span><span class="atn">-</span><span>broke.</span><br /><br /><span class="hps">Why is that?</span><br /><br /><span class="hps">Most of the</span> <span class="hps">times</span><span>,</span> <span class="hps">the producers</span> <span class="hps">of</span> <span class="hps">arrdamento</span> <span class="hps atn">(</span><span>economic</span><span>)</span> <span class="hps">speculate</span> <span class="hps">on these details</span><span>,</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">using</span> <span class="hps">plastic substrates</span><span>.</span><br /><br /><span class="hps">It seems not,</span> <span class="hps">weigh</span> <span class="hps">the clothes</span> <span class="hps">and</span> <span class="hps">the weight is distributed</span> <span class="hps">on both ends</span> <span class="hps">of the tube.</span><span class="hps"> </span></span><br />
<span class="" id="result_box" lang="en"><span class="hps">Normal</span> <span class="hps">after a few years</span><span>, give</span><span>.</span><br /><br /><span class="hps">advice</span><br /><br /><span class="hps">Use</span> <span class="hps">metal</span> <span class="hps">side supports</span><br /><br /><span class="hps">The pipe must be</span> <span class="hps">OVAL</span> <span class="hps atn">(</span><span>mechanically</span> <span class="hps">rigid</span><span>), practically</span> <span class="hps">does not flex</span><span>.</span><br /><br /><span class="hps">Using a pipe</span> <span class="hps">ROUND</span><span>,</span> <span class="hps">the two ends</span> <span class="hps">are</span> <span class="hps">most stressed</span><span>,</span><br /><br /><span class="hps">Round</span> <span class="hps">the</span> <span class="hps">bends</span> <span class="hps">in</span> <span class="hps">the center.</span><br /><br /><span class="hps">With a</span> <span class="hps">tube</span> <span class="hps">of 2 meters</span> <span class="hps">is recommended to add</span> <span class="hps">a central support</span></span><br />
<br />Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0Via Giosuè Carducci, 32, 34170 Gorizia GO, Italia45.9478623 13.626226545.9464823 13.623759 45.949242299999995 13.628694tag:blogger.com,1999:blog-4421047768738780888.post-52689820041235946932012-06-08T06:01:00.001-07:002012-06-08T06:01:33.917-07:00Articoli ferramenta: Articoli ferramenta: Ringhiera da verniciare-Raili...<a href="http://hobbyferramenta.blogspot.com/2012/06/articoli-ferramenta-ringhiera-da.html?spref=bl">Articoli ferramenta: Articoli ferramenta: Ringhiera da verniciare-Raili...</a>: Articoli ferramenta: Ringhiera da verniciare-Railings to be painted- Ba... : Devi verniciare una nuova ringhiera o portone appena zincato ?...Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0tag:blogger.com,1999:blog-4421047768738780888.post-79906878292588021352012-06-02T02:29:00.001-07:002012-06-02T02:29:02.854-07:00Articoli ferramenta: Ringhiera da verniciare-Railings to be painted- Ba...<a href="http://hobbyferramenta.blogspot.com/2012/06/ringhiera-da-verniciare-railings-to-be.html?spref=bl">Articoli ferramenta: Ringhiera da verniciare-Railings to be painted- Ba...</a>: Devi verniciare una nuova ringhiera o portone appena zincato ? Sconsigliabile. Una perdita di tempo. Posso acquistare qualsia...Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0tag:blogger.com,1999:blog-4421047768738780888.post-51775685116294793022012-06-02T02:06:00.001-07:002012-06-02T02:09:42.012-07:00Ringhiera da verniciare-Railings to be painted- Barvanje ograje-<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTJCNuEgAlnz38LBBZJYAW0yc8nGrUSYMA6SBg-hAhQzcE4Y3oO4n6RB2FBTWlpbjXXQw-G8xJiASFiJut-Uvt6pwfwawAhWGZBDrQGDQnrrSnBEbMzrq_qRPUHa6P25havS52pKgDdcx7/s1600/recinzione.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTJCNuEgAlnz38LBBZJYAW0yc8nGrUSYMA6SBg-hAhQzcE4Y3oO4n6RB2FBTWlpbjXXQw-G8xJiASFiJut-Uvt6pwfwawAhWGZBDrQGDQnrrSnBEbMzrq_qRPUHa6P25havS52pKgDdcx7/s640/recinzione.JPG" width="480" /></a></div>
<br />
<br />
<br />
<br />
Devi verniciare una nuova ringhiera o portone appena<b><i> <span style="color: #666666;">zincato</span></i></b>?<br />
<br />
Sconsigliabile.<br />
Una perdita di tempo.<br />
<br />
Posso <a href="http://www.hobbyferramenta.com/" target="_blank">acquistare</a> qualsiasi vernice,anche di ottima <a href="mailto:hobbyferramenta@gmail.com" target="_blank">qualità</a>, sè la superficie è stata<i style="color: #999999;"><b> zincata </b></i>da poco,<br />
dopo qulche mese dopo la verniciatura, noterò il distacco del colore dalla superficie sottostante<br />
<b><i><span style="color: #666666;">zincata</span></i></b>.<br />
<br />
Che fare?<br />
<ul>
<li>porto a sabbiare le parti metalliche <b><i><span style="color: #999999;">zincate</span></i></b> ( la sabbiatura deve essere eseguita con </li>
<li>un passaggio leggero e superficiale in macchina sabbiatrice)</li>
<li>attendere alcuni mesi, che lo <b><i><span style="color: #999999;">zinco </span></i></b>ossida</li>
</ul>
Ora posso vreniciare<br />
<br />
<br />
Sè desidero un portone o ringhiere verniciata?<br />
<br />
<ul>
<li>il sistema tradizionale và benissimo: antiruggine e vernice</li>
<li>oppure </li>
<li>il sistema a polveri: praimer e vernice ( officine attrezzate, eseguono il lavaggio delle parti</li>
<li>metalliche grasse, in seconda fase eseguaono una verniciatura con praimer-è un ancorante</li>
<li>e per ultimo una verniciatura a caldo) </li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtlq04-ipMM4MqSEtSLTpbinpLcGYeyhiQy5nJNNEyXy1LIHjYbyT4iXf-cU_05c8k8RalTh52E5rpWusu2GkvcU21WcciiGPXQ-bSZvz3KaoU3L27VtKuJMfH_ZVw0sBmUR50I4bnFS6s/s1600/portone+interno.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtlq04-ipMM4MqSEtSLTpbinpLcGYeyhiQy5nJNNEyXy1LIHjYbyT4iXf-cU_05c8k8RalTh52E5rpWusu2GkvcU21WcciiGPXQ-bSZvz3KaoU3L27VtKuJMfH_ZVw0sBmUR50I4bnFS6s/s400/portone+interno.JPG" width="400" /></a></div>
<br />
<br />
<span class="" id="result_box" lang="en"><span class="hps">You have to</span> <span class="hps">paint a</span> <span class="hps">new</span> <span class="hps">handrail</span> <span class="hps">or door</span> <span class="hps">as soon</span><b><i><span style="color: #999999;"> </span><span class="hps" style="color: #999999;">galvanized</span></i></b>?<br /><br /> <span class="hps">Inadvisable.</span><br /><br /> <span class="hps">A waste of time</span>.<br /><br /> <span class="hps">Can I <a href="http://www.blogger.com/goog_1259931740">buy</a></span> <span class="hps">any paint</span>, <span class="hps">also</span> <span class="hps">of excellent<a href="mailto:hobbyferramenta@gmail.com" target="_blank"> quality</a></span>, <span class="hps">the surface</span> <span class="hps">itself</span> <span class="hps">has been</span><b><i><span style="color: #999999;"> </span><span class="hps" style="color: #999999;">galvanized</span></i></b> <span class="hps">by</span> <span class="hps">little,</span><br /><br /> <span class="hps">after</span> <span class="hps">qulche</span> <span class="hps">month after the</span> <span class="hps">painting</span>, <span class="hps">I will notice</span> <span class="hps">the detachment of the</span> <span class="hps">color</span> <span class="hps">from the underlying surface</span><br /><br /> <span class="hps">galvanized</span>.<br /><br /> <span class="hps">What to do</span>?<br /><br /> <span class="hps">port to</span> <span class="hps">blast the</span><b><i><span style="color: #999999;"> </span><span class="hps" style="color: #999999;">galvanized</span></i></b> <span class="hps">metal</span> <span class="hps atn">(</span>sandblasting <span class="hps">should</span> <span class="hps">be done with</span><br /> <span class="hps">a shift</span> <span class="hps">light and</span> <span class="hps">surface</span> <span class="hps">blasting</span> <span class="hps">in the car</span>)<br /> <span class="hps">wait a few</span> <span class="hps">months,</span> <span class="hps">the zinc</span> <span class="hps">oxidizes</span><br /><br /> <span class="hps">Now</span> <span class="hps">I can</span> <span class="hps">vreniciare</span><br /><br /> <span class="hps">Itself</span> <span class="hps">like</span> <span class="hps">a</span> <span class="hps">door or</span> <span class="hps">railings</span> <span class="hps">painted</span>?<br /><br /> <span class="hps">the traditional system</span> <span class="hps">goes</span> <span class="hps">well</span>: <span class="hps">rust</span> <span class="hps">and paint</span><br /> <span class="hps">or</span><br /> <span class="hps">the system</span> <span class="hps">powder</span>: <span class="hps">praimer</span> <span class="hps">and paint</span> <span class="hps atn">(</span>equipped <span class="hps">workshops</span>, <span class="hps">run</span> <span class="hps">the washing</span> <span class="hps">of the parts</span><br /> <span class="hps">Fat</span> <span class="hps">metal</span>, <span class="hps">in</span> <span class="hps">a</span> <span class="hps">second phase</span> <span class="hps">eseguaono</span> <span class="hps">praimer</span><span class="atn">-</span>painted with <span class="hps">an anchor</span> <span class="hps">is</span><br /> <span class="hps">and finally</span> <span class="hps">a</span> <span class="hps">hot</span> <span class="hps">paint</span><span class="">)</span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmLj2mioL-we-485aH6WR9efmJyJsexHt5yj8QDrE9zxiBz0E_EG1EeZhOXVin0tcAj3HUqF0gmfKGI6ySaA43736wgqiKC2WmsdKOmgIMyavsomvJn6qpdQP973yEAyJ0ytV0mhqk1uGe/s1600/balcone.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmLj2mioL-we-485aH6WR9efmJyJsexHt5yj8QDrE9zxiBz0E_EG1EeZhOXVin0tcAj3HUqF0gmfKGI6ySaA43736wgqiKC2WmsdKOmgIMyavsomvJn6qpdQP973yEAyJ0ytV0mhqk1uGe/s640/balcone.JPG" width="480" /></a></div>
<br />
<br />
<span class="" id="result_box" lang="en"><span class="">Moram barvat novo ograjo ali vhodna dvoriscna vrata sele <b><i><span style="color: #999999;">pocinkana</span></i></b>? </span></span><br />
<span class="" id="result_box" lang="en"><span class=""><br /></span></span><br />
<span class="" id="result_box" lang="en"><span class="">Odsvetujem.</span></span><br />
<span class="" id="result_box" lang="en"><span class="">Izguba casa.</span></span><br />
<br />
<span class="" id="result_box" lang="en"><span class="">Lahko<a href="mailto:hobbyferramenta@gmail.com" target="_blank"> kupim</a> katerokoli barvo,tudi super<a href="mailto:hobbyferramenta@gmail.com" target="_blank"> kvalitete</a>, ce povrsina je sele<b><i><span style="color: #999999;"> cinkana</span></i></b>, </span></span><br />
<span class="" id="result_box" lang="en"><span class="">lahko barvam, a po nekaj mesecih,bom opazil povrsinsko odlimanje barve iz</span></span><br />
<span class="" id="result_box" lang="en"><span class="">spodnje plasti <b><i><span style="color: #999999;">cinka</span></i></b></span></span><br />
<span class="" id="result_box" lang="en"><span class=""><br /></span></span><br />
<span class="" id="result_box" lang="en"><span class=""><br /></span></span><br />
<span class="" id="result_box" lang="en"><span class="">Kaj narediti?</span></span><br />
<br />
<ul>
<li><span class="" id="result_box" lang="en"><span class="">lahko speskam na novo <b><i><span style="color: #999999;">cinkane </span></i></b>dele( peskanje mora biti lahko in povrsinsko</span></span></li>
<li><span class="" id="result_box" lang="en"><span class="">v peskalnem stroju)</span></span></li>
<li><span class="" id="result_box" lang="en"><span class="">ali pa </span></span></li>
<li><span class="" id="result_box" lang="en"><span class="">pustit nepobarvano nekaj mesecev, da <b><i><span style="color: #999999;">cink</span></i></b> oksidira</span></span></li>
</ul>
<span class="" id="result_box" lang="en"><span class="">Sedaj lahko barvam.</span></span><br />
<span class="" id="result_box" lang="en"><span class=""><br /></span></span><br />
<span class="" id="result_box" lang="en"><span class=""><br /></span></span><br />
<span class="" id="result_box" lang="en"><span class="">Ce pa zelim vrata in ograjo takoj pobarvano?</span></span><br />
<span class="" id="result_box" lang="en"><span class=""><br /></span></span><br />
<ul>
<li><span class="" id="result_box" lang="en"><span class="">tradicjonalni sistem je perfekten: nerjavece in barva</span></span></li>
<li><span class="" id="result_box" lang="en"><span class="">ali</span></span></li>
<li><span class="" id="result_box" lang="en"><span class="">prasno barvanje: praimer in barva ( opremljene firme, v prvi fazi operejo zelezne </span></span></li>
<li><span class="" id="result_box" lang="en"><span class="">mastne povrsine, v drugi dajo praimer- pomaga, da se barva bolje zalima na metal,</span></span></li>
<li><span class="" id="result_box" lang="en"><span class="">po tem pa toplo barvajo)</span></span></li>
</ul>
<ul></ul>Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0Via Giosuè Carducci, 32, 34170 Gorizia GO, Italia45.9478623 13.626226545.9464823 13.623759 45.949242299999995 13.628694tag:blogger.com,1999:blog-4421047768738780888.post-9311921090533750522012-03-10T09:19:00.001-08:002012-03-10T09:19:19.350-08:00Articoli ferramenta: Colonnina in stile- Pedestal style - Stebricek sti...<a href="http://hobbyferramenta.blogspot.com/2012/03/colonnina-in-stile-pedestal-style.html?spref=bl">Articoli ferramenta: Colonnina in stile- Pedestal style - Stebricek sti...</a>: Presentiamo un nuovo articolo COLONNINA PASSACORDONE Tatydesing Creato per sale convegni, percorsi di percorrenza e zone da delimita...Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0tag:blogger.com,1999:blog-4421047768738780888.post-7499980352742637162012-03-10T09:14:00.000-08:002012-03-10T09:14:56.890-08:00Colonnina in stile- Pedestal style - Stebricek stiliziranPresentiamo un nuovo articolo<br />
<br />
<a href="http://www.tweetadder.com/idevaffiliate/idevaffiliate.php?id=14022& tid1 = blogger & tid2 = colonnina" target="_blank">COLONNINA</a> PASSACORDONE<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzml6VZ3K6FfLQwL3fvyJKuNzvrOUx2zhvAwy_FC9HkiDWSZEQNxD_fRfpKJiqaiDBi0lP7k9SZKJ4b8MKjX8wFnIZTdBrTc_k8T24Z7R8WPA3IbbvRcUAJHjH6DLRv5zsSn4AEkSz_Nkk/s1600/1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzml6VZ3K6FfLQwL3fvyJKuNzvrOUx2zhvAwy_FC9HkiDWSZEQNxD_fRfpKJiqaiDBi0lP7k9SZKJ4b8MKjX8wFnIZTdBrTc_k8T24Z7R8WPA3IbbvRcUAJHjH6DLRv5zsSn4AEkSz_Nkk/s400/1.JPG" width="300" yda="true" /></a></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><a href="http://www.hobbyferramenta.com/" target="_blank">Tatydesing</a></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">Creato per sale convegni, percorsi di percorrenza e zone da delimitare.</div>Ha un'altezza di 1150 mm.<br />
La base è in pietra, scelta in abbinamento al nostro pavimento di dimensioni<br />
250 mm x 250 mm con spessore 60 mm<br />
<br />
La parte centrale ( in stile) può essere in alluminio verniciato o satinato,<br />
bronzo o ottone lucidato o satinato e proponiamo la versione argento.<br />
<br />
In foto il gancio e il<a href="mailto:hobbyferramenta@gmail.com" target="_blank"> pomolo</a> è in ottone lucido.<br />
<br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div>Tatydesing è una nostra creazione<br />
<br />
<br />
<br />
<br />
<span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" id="result_box" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="195" sc="null">We present a</span> <span class="hps" closure_uid_xuoyuq="196" sc="null">new article</span><br closure_uid_xuoyuq="200" sc="null" /><br closure_uid_xuoyuq="201" sc="null" /><span class="hps" closure_uid_xuoyuq="197" sc="null">COLUMN</span> <span class="hps" closure_uid_xuoyuq="198" sc="null">CORD</span></span><br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSFlcWDbYsaSBeHURxciOntyRJeve1xTBOFVyrrxmLUCZc0ujqFKyltuqDondW5DQG3ku59XsuLulqArzz25outoeD21wavyKD-U2VT1L9tG9VigyW9m1HfbwJaA_qzUr4QIo85pu8ob05/s1600/2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSFlcWDbYsaSBeHURxciOntyRJeve1xTBOFVyrrxmLUCZc0ujqFKyltuqDondW5DQG3ku59XsuLulqArzz25outoeD21wavyKD-U2VT1L9tG9VigyW9m1HfbwJaA_qzUr4QIo85pu8ob05/s400/2.JPG" width="300" yda="true" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" id="result_box" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="232">Taty<a href="http://www.tweetadder.com/idevaffiliate/idevaffiliate.php?id=14022& tid3 = desing" target="_blank">desing</a></span></span></span></span><br />
<br />
<span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="232">Designed</span> <span class="hps" closure_uid_xuoyuq="233">for</span> <span class="hps" closure_uid_xuoyuq="234">conference rooms</span><span closure_uid_xuoyuq="235">,</span> <span class="hps" closure_uid_xuoyuq="236">walking</span> <span class="hps" closure_uid_xuoyuq="237">paths</span> <span class="hps" closure_uid_xuoyuq="238">and</span> <span class="hps" closure_uid_xuoyuq="239">other zones</span><span closure_uid_xuoyuq="240">.</span><br closure_uid_xuoyuq="287" /><span class="hps" closure_uid_xuoyuq="241">It has a height</span> <span class="hps" closure_uid_xuoyuq="242">of 1150</span> <span class="hps" closure_uid_xuoyuq="243">mm</span><span closure_uid_xuoyuq="244">.</span><br closure_uid_xuoyuq="289" /><span class="hps" closure_uid_xuoyuq="245">The base is in</span> <span class="hps" closure_uid_xuoyuq="246">stone</span><span closure_uid_xuoyuq="247">, chosen</span> <span class="hps" closure_uid_xuoyuq="248">in conjunction with</span> <span class="hps" closure_uid_xuoyuq="249">our floor</span> <span class="hps" closure_uid_xuoyuq="250">of</span> <span class="hps" closure_uid_xuoyuq="251">size</span><br closure_uid_xuoyuq="291" /><span class="hps" closure_uid_xuoyuq="252">250</span> <span class="hps" closure_uid_xuoyuq="253">mm</span> <span class="hps" closure_uid_xuoyuq="254">x 250</span> <span class="hps" closure_uid_xuoyuq="255">mm</span><span closure_uid_xuoyuq="256">, thickness</span> <span class="hps" closure_uid_xuoyuq="257">60</span> <span class="hps" closure_uid_xuoyuq="258">mm</span><br closure_uid_xuoyuq="293" /><span class="hps" closure_uid_xuoyuq="259">The central part</span> <span class="hps atn" closure_uid_xuoyuq="260">(</span><span closure_uid_xuoyuq="261">style</span><span closure_uid_xuoyuq="262">)</span> <span class="hps" closure_uid_xuoyuq="263">can</span> <span class="hps" closure_uid_xuoyuq="264">be</span> <span class="hps" closure_uid_xuoyuq="265">painted or</span> <span class="hps" closure_uid_xuoyuq="266">brushed</span> <span class="hps" closure_uid_xuoyuq="267">aluminum</span><span closure_uid_xuoyuq="268">,</span><br closure_uid_xuoyuq="297" /><span class="hps" closure_uid_xuoyuq="269">bronze or</span> <span class="hps" closure_uid_xuoyuq="270">polished brass</span> <span class="hps" closure_uid_xuoyuq="271">or satin</span> <span class="hps" closure_uid_xuoyuq="272">silver</span> <span class="hps" closure_uid_xuoyuq="273">version</span> <span class="hps" closure_uid_xuoyuq="274">and</span> <span class="hps" closure_uid_xuoyuq="275">propose</span><span closure_uid_xuoyuq="276">.</span><br closure_uid_xuoyuq="299" /><span class="hps" closure_uid_xuoyuq="277">In</span> <span class="hps" closure_uid_xuoyuq="278">the picture the</span> <span class="hps" closure_uid_xuoyuq="279">hook and the</span> <span class="hps" closure_uid_xuoyuq="280">knob is</span> <span class="hps" closure_uid_xuoyuq="281">made of polished brass</span><span closure_uid_xuoyuq="282">.</span><br closure_uid_xuoyuq="303" /><br closure_uid_xuoyuq="304" /><br closure_uid_xuoyuq="305" /><span class="hps" closure_uid_xuoyuq="283">Tatydesing</span> <span class="hps" closure_uid_xuoyuq="284">is</span> <span class="hps" closure_uid_xuoyuq="285">our creation</span></span></span></span><br />
<br />
<br />
<span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="285">Predatavimo nov atrikel</span></span></span></span><br />
<br />
<span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="285">STILNI STEBRICEK</span></span></span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguZzrweh0pKuI5L3k_VPPaId1ulsD2OLtrXuk6U_bNRXuXFCSo1e5ckY10B2td9D5zbOAU1Cas3AmdN1BycvAsh755p1ZrdHO84tprvC2_OndoMG3NaE1jbhd1PWK4YsU29A-9icpJ0svE/s1600/8.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguZzrweh0pKuI5L3k_VPPaId1ulsD2OLtrXuk6U_bNRXuXFCSo1e5ckY10B2td9D5zbOAU1Cas3AmdN1BycvAsh755p1ZrdHO84tprvC2_OndoMG3NaE1jbhd1PWK4YsU29A-9icpJ0svE/s400/8.JPG" width="300" yda="true" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="285"><a href="http://www.hobbyferramenta.com/" target="_blank">Tatydesing</a></span></span></span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="285">Namenjen konferencnim prostorom, <span class="hps" closure_uid_xuoyuq="321" sc="null">sprehajalne</span> <span class="hps" closure_uid_xuoyuq="322" sc="null">poti in<a href="http://www.riparacasa.blogspot.com/" target="_blank"> prostore</a> z omejeno</span></span></span></span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="285"><span class="hps" closure_uid_xuoyuq="322" sc="null">prehodnostjo.</span></span></span></span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="285"><span class="hps" closure_uid_xuoyuq="322" sc="null">Visok je 1150 mm.</span></span></span></span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="285"><span class="hps" closure_uid_xuoyuq="322" sc="null"><span class="hps" closure_uid_xuoyuq="329" sc="null">Osnova</span> <span class="hps" closure_uid_xuoyuq="330" sc="null">je</span> iz kamna<span closure_uid_xuoyuq="332" sc="null">,</span> <span class="hps" closure_uid_xuoyuq="333" sc="null">izbran</span> <span class="hps" closure_uid_xuoyuq="334" sc="null">v povezavi</span> z opremo, <span class="hps" closure_uid_xuoyuq="337" sc="null">velikost je</span><br closure_uid_xuoyuq="377" sc="null" /><span class="hps" closure_uid_xuoyuq="338" sc="null">250 mm</span> <span class="hps" closure_uid_xuoyuq="339" sc="null">x</span> <span class="hps" closure_uid_xuoyuq="340" sc="null">250 mm,</span> <span class="hps" closure_uid_xuoyuq="341" sc="null">debelina</span> <span class="hps" closure_uid_xuoyuq="342" sc="null">60 mm.</span></span></span></span></span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="285"><span class="hps" closure_uid_xuoyuq="322" sc="null"><span class="hps" closure_uid_xuoyuq="342" sc="null"></span><span closure_uid_xuoyuq="343" sc="null">Osrednji del</span> <span class="hps atn" closure_uid_xuoyuq="344" sc="null">(</span><span closure_uid_xuoyuq="345" sc="null">stilni</span><span closure_uid_xuoyuq="346" sc="null">) lahko</span> izberete iz <span class="hps" closure_uid_xuoyuq="347" sc="null">barvanega </span> <span class="hps" closure_uid_xuoyuq="348" sc="null">ali</span> <span class="hps" closure_uid_xuoyuq="349" sc="null">brušenega</span> <span class="hps" closure_uid_xuoyuq="350" sc="null">aluminija</span><span closure_uid_xuoyuq="351" sc="null">,</span><br closure_uid_xuoyuq="383" sc="null" /><span class="hps" closure_uid_xuoyuq="352" sc="null">brona</span> <span class="hps" closure_uid_xuoyuq="353" sc="null">ali polirane</span> <span class="hps" closure_uid_xuoyuq="354" sc="null">medenine</span> <span class="hps" closure_uid_xuoyuq="355" sc="null">ali</span> mat, predlagamo srebrno verzijo<span closure_uid_xuoyuq="360" sc="null">.</span></span></span></span></span></span><span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="285"><span class="hps" closure_uid_xuoyuq="322" sc="null"><span class="hps" closure_uid_xuoyuq="361" sc="null">Na sliki</span> <span class="hps" closure_uid_xuoyuq="362" sc="null">je</span> <span class="hps" closure_uid_xuoyuq="363" sc="null">kavelj</span> <span class="hps" closure_uid_xuoyuq="364" sc="null">in</span> bunkica sta <span class="hps" closure_uid_xuoyuq="366" sc="null">iz</span> <span class="hps" closure_uid_xuoyuq="367" sc="null">poliranega</span> <span class="hps" closure_uid_xuoyuq="368" sc="null">medenine.</span></span></span></span></span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><span a="undefined" c="4" class="short_text" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="198" sc="null"><span a="undefined" c="4" closure_uid_xuoyuq="137" lang="en" sc="null"><span class="hps" closure_uid_xuoyuq="285"><span class="hps" closure_uid_xuoyuq="322" sc="null"><span class="hps" closure_uid_xuoyuq="368" sc="null"><a href="mailto:hobbyferramenta@gmail.com" target="_blank">Tatydesing</a> smo mi ustvarili</span></span></span></span></span></span><br />
<br />
<br />
<br />
<br />
<a href="http://www.tweetadder.com/idevaffiliate/idevaffiliate.php?id=14022_0_1_13" target="_blank"><img alt="" border="0" height="250" src="http://www.tweetadder.com/idevaffiliate/banners/300x250.gif" width="300" /></a>Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0tag:blogger.com,1999:blog-4421047768738780888.post-28905967446998851542011-12-26T06:22:00.000-08:002011-12-26T06:22:39.183-08:00Winter, cold and wind, old window frames are to be changed? //\\ Inverno, freddo e vento,serramenti vecchi sono da cambiare? //\\ Зима, холода и ветра, старые оконные рамы должны быть изменены?<div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><img border="0" rea="true" src="http://3.bp.blogspot.com/-X8esDhXQnkQ/TvN0mKsdeHI/AAAAAAAAACw/Nia-lZq_y9k/s1600/pettine.jpg" /></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">Ogni anno, con arrivo della stagione invernale nell'abitazione andiamo incontro a infiltrazioni di freddo e vento.</div>Una<a href="http://www.hobbyferramenta.com/"> casa</a>, che ha già qualche anno, ha solitamente porte e finestre in<a href="mailto:hobbyferramenta@gmail.com"> legno</a>. Come posso<br />
spendere meno per il riscaldamento e avere la casa più calda. Spendere meno in energia non è facile,bisogna investire in caldaia di ultima generazione, studiata per ottimizzare i consumi. Importante è<br />
anche come sono stati posizionti i radiatori. In base alle dimensioni e posizioni delle stanze, devo installare radiatori che riescano a sufficenza scaldare la stanza. Radiatore piccolo ha poca resa.<br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">Argomento che voglio trattare sono i serramenti. Non pensare, che i serramenti di ultima generazione,</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">dopo l'installazione non hanno bisogno di <a href="http://www.riparacasa.blogspot.com/">manutenzione</a>. Anche sè in PVC, ALLUMINIO necessita di regolazioni, pulizia guarnizioni e regolarmente spruzzare silicone spray, per mantenerle morbide. Serramenti in legno richiedono,oltre la medesima manutenzione anche la verniciatura con prodotti consigliati dalla casa.</div>Chi ha porte e finestre di vecchia costruzione, come può risolve le infiltrazioni d'aria, tanto fastidiose?<br />
La manutenzione delle finestre singole o con doppio vetro inizio preferibilmente in estate.<br />
Prima cosa controllo che i telai e le cornici sono integre, in caso contrario, col l'aiuto delle colle <br />
riporto il serramento in condizioni originali. Con morsetti, colle e stucchi si può fare tutto.<br />
Per migliorare l'isolamento, controllo che i vetri siano ben saldi al telaio, altrimenti aggiungo stucco per vetri<br />
nuovo(morbido) o silicone. Controllo che le regolazioni sono giuste (altezze e inclinazioni)<br />
e mi danno una buona chiusura. Verifico anche il meccanismo del Cremonese.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-6musiVdI7wI/TvN1dFB4p_I/AAAAAAAAADU/3V2WZXbu83w/s1600/cremonese+lara+cer-bronz.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" rea="true" src="http://1.bp.blogspot.com/-6musiVdI7wI/TvN1dFB4p_I/AAAAAAAAADU/3V2WZXbu83w/s200/cremonese+lara+cer-bronz.JPG" width="150" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-oXm22gaI2j4/TvN1LofNpvI/AAAAAAAAADI/hdDQsE_uFzE/s1600/meccanismo+con+bussole.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" rea="true" src="http://3.bp.blogspot.com/-oXm22gaI2j4/TvN1LofNpvI/AAAAAAAAADI/hdDQsE_uFzE/s200/meccanismo+con+bussole.JPG" width="150" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Ora posso verniciare.<br />
Finito anche questo, passo all'ultima fase, posiziono le guarnizioni paraspiffero.<br />
Queste, in chiusura, sigileranno l'infisso, migliorando notevolmente l'isolamento.<br />
Le porte hanno la stessa problematica, aggiungendo un altra porta a qualche metro di distanza dalla <br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><a href="http://www.guadagnisegreti.blogspot.com/" target="_blank">principale</a>, spezziamo il flusso d'aria diretto in casa. </div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span a="undefined" c="4" closure_uid_w063mq="314" id="result_box" lang="en" pc="null"><span class="hps" closure_uid_w063mq="121" pc="null">Each</span> <span class="hps" closure_uid_w063mq="122" pc="null">year,</span> <span class="hps" closure_uid_w063mq="123" pc="null">winter</span> <span class="hps" closure_uid_w063mq="124" pc="null">season arrives</span> <span class="hps" closure_uid_w063mq="125" pc="null">in the home</span> <span class="hps" closure_uid_w063mq="126" pc="null">we approach</span> <span class="hps" closure_uid_w063mq="127" pc="null">the infiltration of</span> <span class="hps" closure_uid_w063mq="128" pc="null">cold and</span> <span class="hps" closure_uid_w063mq="129" pc="null">wind.</span><br closure_uid_w063mq="283" pc="null" /><span class="hps" closure_uid_w063mq="130" pc="null">A house</span> <span class="hps" closure_uid_w063mq="131" pc="null">that</span> <span class="hps" closure_uid_w063mq="132" pc="null">has</span> <span class="hps" closure_uid_w063mq="133" pc="null">a few years</span><span closure_uid_w063mq="134" pc="null">,</span> <span class="hps" closure_uid_w063mq="135" pc="null">usually has</span> <span class="hps" closure_uid_w063mq="136" pc="null">wooden</span> <span class="hps" closure_uid_w063mq="137" pc="null">doors and</span> <span class="hps" closure_uid_w063mq="138" pc="null">windows</span><span closure_uid_w063mq="139" pc="null">.</span> <span class="hps" closure_uid_w063mq="140" pc="null">How do I</span><br closure_uid_w063mq="285" pc="null" /><span class="hps" closure_uid_w063mq="141" pc="null">spend less on</span> <span class="hps" closure_uid_w063mq="142" pc="null">heating and</span> <span class="hps" closure_uid_w063mq="143" pc="null">have the <a href="http://www.hobbyferramenta.com/">house</a></span> <span class="hps" closure_uid_w063mq="144" pc="null">warmer.</span> <span class="hps" closure_uid_w063mq="145" pc="null">Spend less on</span> <span class="hps" closure_uid_w063mq="146" pc="null">energy is not</span> <span class="hps" closure_uid_w063mq="147" pc="null">easy,</span> <span class="hps" closure_uid_w063mq="148" pc="null">you have to invest</span> <span class="hps" closure_uid_w063mq="149" pc="null">in the boiler</span> <span class="hps" closure_uid_w063mq="150" pc="null">of the latest generation</span><span closure_uid_w063mq="151" pc="null">,</span> <span class="hps" closure_uid_w063mq="152" pc="null">designed</span> <span class="hps" closure_uid_w063mq="153" pc="null">to optimize fuel consumption</span><span closure_uid_w063mq="154" pc="null">.</span> <span class="hps" closure_uid_w063mq="155" pc="null">important is</span><br closure_uid_w063mq="287" pc="null" /><span class="hps" closure_uid_w063mq="156" pc="null">as</span> <span class="hps" closure_uid_w063mq="157" pc="null">were</span> <span class="hps" closure_uid_w063mq="158" pc="null">posizionti</span> <span class="hps" closure_uid_w063mq="159" pc="null">radiators</span><span closure_uid_w063mq="160" pc="null">.</span> <span class="hps" closure_uid_w063mq="161" pc="null">Depending on the size</span> <span class="hps" closure_uid_w063mq="162" pc="null">and positions</span> <span class="hps" closure_uid_w063mq="163" pc="null">of the rooms,</span> <span class="hps" closure_uid_w063mq="164" pc="null">I have to install</span> <span class="hps" closure_uid_w063mq="165" pc="null">radiators</span> <span class="hps" closure_uid_w063mq="166" pc="null">fail to</span> <span class="hps" closure_uid_w063mq="167" pc="null">heat the</span> <span class="hps" closure_uid_w063mq="168" pc="null">room</span> <span class="hps" closure_uid_w063mq="169" pc="null">sufficiency</span><span closure_uid_w063mq="170" pc="null">.</span> <span class="hps" closure_uid_w063mq="171" pc="null">Radiator</span> <span class="hps" closure_uid_w063mq="172" pc="null">made</span> <span class="hps" closure_uid_w063mq="173" pc="null">of little</span> <span class="hps" closure_uid_w063mq="174" pc="null">small</span><span closure_uid_w063mq="175" pc="null">.</span><br closure_uid_w063mq="289" pc="null" /><span class="hps" closure_uid_w063mq="176" pc="null">Thing that I want</span> <span class="hps" closure_uid_w063mq="177" pc="null">to treat</span> <span class="hps" closure_uid_w063mq="178" pc="null">are the</span> <span class="hps" closure_uid_w063mq="179" pc="null">windows</span><span closure_uid_w063mq="180" pc="null">.</span> <span class="hps" closure_uid_w063mq="181" pc="null">Do not think</span><span closure_uid_w063mq="182" pc="null">,</span> <span class="hps" closure_uid_w063mq="183" pc="null">that the</span> <span class="hps" closure_uid_w063mq="184" pc="null">doors</span> <span class="hps" closure_uid_w063mq="185" pc="null">of the latest generation</span><br closure_uid_w063mq="291" pc="null" /><span class="hps" closure_uid_w063mq="186" pc="null">After</span> <span class="hps" closure_uid_w063mq="187" pc="null">the installation does not</span> <span class="hps" closure_uid_w063mq="188" pc="null">need maintenance</span><span closure_uid_w063mq="189" pc="null">.</span> <span class="hps" closure_uid_w063mq="190" pc="null">Although</span> <span class="hps" closure_uid_w063mq="191" pc="null">PVC</span><span closure_uid_w063mq="192" pc="null">, ALUMINIUM</span> <span class="hps" closure_uid_w063mq="193" pc="null">needs</span> <span class="hps" closure_uid_w063mq="194" pc="null">adjustments</span><span closure_uid_w063mq="195" pc="null">, cleaning</span> <span class="hps" closure_uid_w063mq="196" pc="null">seals</span> <span class="hps" closure_uid_w063mq="197" pc="null">and regularly</span> <span class="hps" closure_uid_w063mq="198" pc="null">spraying</span> <span class="hps" closure_uid_w063mq="199" pc="null"><a href="mailto:hobbyferramenta@gmail.com">silicone spray</a></span> <span class="hps" closure_uid_w063mq="200" pc="null">to keep them</span> <span class="hps" closure_uid_w063mq="201" pc="null">soft</span><span closure_uid_w063mq="202" pc="null">.</span> <span class="hps" closure_uid_w063mq="203" pc="null">Wooden doors and windows</span> <span class="hps" closure_uid_w063mq="204" pc="null">require</span> <span class="hps" closure_uid_w063mq="205" pc="null">maintenance even</span> <span class="hps" closure_uid_w063mq="206" pc="null">over</span> <span class="hps" closure_uid_w063mq="207" pc="null">the same</span> <span class="hps" closure_uid_w063mq="208" pc="null">painting with</span> <span class="hps" closure_uid_w063mq="209" pc="null">products recommended</span> <span class="hps" closure_uid_w063mq="210" pc="null">by the</span> <span class="hps" closure_uid_w063mq="211" pc="null">house.</span><br closure_uid_w063mq="293" pc="null" /><span class="hps" closure_uid_w063mq="212" pc="null">Who</span> <span class="hps" closure_uid_w063mq="213" pc="null">doors and</span> <span class="hps" closure_uid_w063mq="214" pc="null">windows</span> <span class="hps" closure_uid_w063mq="215" pc="null">of old buildings</span><span closure_uid_w063mq="216" pc="null">,</span> <span class="hps" closure_uid_w063mq="217" pc="null">how can</span> <span class="hps" closure_uid_w063mq="218" pc="null">solve</span> <span class="hps" closure_uid_w063mq="219" pc="null">air infiltration</span><span closure_uid_w063mq="220" pc="null">, so</span> <span class="hps" closure_uid_w063mq="221" pc="null">annoying</span><span closure_uid_w063mq="222" pc="null">?</span><br closure_uid_w063mq="295" pc="null" /><span class="hps" closure_uid_w063mq="223" pc="null">The maintenance of</span> <span class="hps" closure_uid_w063mq="224" pc="null">single or</span> <span class="hps" closure_uid_w063mq="225" pc="null">double glazed</span> <span class="hps" closure_uid_w063mq="226" pc="null">windows,</span> <span class="hps" closure_uid_w063mq="227" pc="null">preferably in</span> <span class="hps" closure_uid_w063mq="228" pc="null">early</span> <span class="hps" closure_uid_w063mq="229" pc="null">summer.</span><br closure_uid_w063mq="297" pc="null" /><span class="hps" closure_uid_w063mq="230" pc="null">First</span> <span class="hps" closure_uid_w063mq="231" pc="null">check</span> <span class="hps" closure_uid_w063mq="232" pc="null">that the</span> <span class="hps" closure_uid_w063mq="233" pc="null">frames</span> <span class="hps" closure_uid_w063mq="234" pc="null">and frames are</span> <span class="hps" closure_uid_w063mq="235" pc="null">intact</span><span closure_uid_w063mq="236" pc="null">,</span> <span class="hps" closure_uid_w063mq="237" pc="null">otherwise,</span> <span class="hps" closure_uid_w063mq="238" pc="null">with</span> <span class="hps" closure_uid_w063mq="239" pc="null">the help</span> <span class="hps" closure_uid_w063mq="240" pc="null">of</span> <span class="hps" closure_uid_w063mq="241" pc="null">the hill</span><br closure_uid_w063mq="299" pc="null" /><span class="hps" closure_uid_w063mq="242" pc="null">carry</span> <span class="hps" closure_uid_w063mq="243" pc="null">the</span> <span class="hps" closure_uid_w063mq="244" pc="null">frame</span> <span class="hps" closure_uid_w063mq="245" pc="null">in original condition</span><span closure_uid_w063mq="246" pc="null">.</span> <span class="hps" closure_uid_w063mq="247" pc="null">With</span> <span class="hps" closure_uid_w063mq="248" pc="null">clamps</span><span closure_uid_w063mq="249" pc="null">, glues and</span> <span class="hps" closure_uid_w063mq="250" pc="null">putties</span> <span class="hps" closure_uid_w063mq="251" pc="null">you can do everything</span><span closure_uid_w063mq="252" pc="null">.</span><br closure_uid_w063mq="301" pc="null" /><span class="hps" closure_uid_w063mq="253" pc="null">To</span> <span class="hps" closure_uid_w063mq="254" pc="null">improve the isolation</span><span closure_uid_w063mq="255" pc="null">,</span> <span class="hps" closure_uid_w063mq="256" pc="null">control</span> <span class="hps" closure_uid_w063mq="257" pc="null">the windows</span> <span class="hps" closure_uid_w063mq="258" pc="null">are secured</span> <span class="hps" closure_uid_w063mq="259" pc="null">to the frame</span><span closure_uid_w063mq="260" pc="null">, otherwise</span> <span class="hps" closure_uid_w063mq="261" pc="null">add</span> <span class="hps" closure_uid_w063mq="262" pc="null">putty</span> <span class="hps" closure_uid_w063mq="263" pc="null">glazing</span><br closure_uid_w063mq="303" pc="null" /><span class="hps atn" closure_uid_w063mq="264" pc="null">new (</span><span closure_uid_w063mq="265" pc="null">soft)</span> <span class="hps" closure_uid_w063mq="266" pc="null">or silicone</span><span closure_uid_w063mq="267" pc="null">.</span> <span class="hps" closure_uid_w063mq="268" pc="null">Control</span> <span class="hps" closure_uid_w063mq="269" pc="null">settings</span> <span class="hps" closure_uid_w063mq="270" pc="null">are correct</span> <span class="hps atn" closure_uid_w063mq="271" pc="null">(</span><span closure_uid_w063mq="272" pc="null">heights and</span> <span class="hps" closure_uid_w063mq="273" pc="null">inclinations</span><span closure_uid_w063mq="274" pc="null">)</span><br closure_uid_w063mq="305" pc="null" /><span class="hps" closure_uid_w063mq="275" pc="null">and give me</span> <span class="hps" closure_uid_w063mq="276" pc="null">a good seal</span><span closure_uid_w063mq="277" pc="null">.</span> <span class="hps" closure_uid_w063mq="278" pc="null">I check</span> <span class="hps" closure_uid_w063mq="279" pc="null">also the mechanism</span> <span class="hps" closure_uid_w063mq="280" pc="null">of the</span> <span class="hps" closure_uid_w063mq="281" pc="null">Cremonese.</span></span><br />
<br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><a href="http://3.bp.blogspot.com/-GVX2TT3-_zM/TvN3_cqNt6I/AAAAAAAAADs/w2arWGZV5EI/s1600/cremonese+pre+finestra.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" rea="true" src="http://3.bp.blogspot.com/-GVX2TT3-_zM/TvN3_cqNt6I/AAAAAAAAADs/w2arWGZV5EI/s320/cremonese+pre+finestra.JPG" width="320" /></a> </div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span a="undefined" c="4" class="long_text" closure_uid_fxoyr7="365" lang="en" pc="null"><span class="hps" closure_uid_fxoyr7="309" pc="null">Now I can</span> <span class="hps" closure_uid_fxoyr7="310" pc="null">paint.</span><br closure_uid_fxoyr7="347" pc="null" /><span class="hps" closure_uid_fxoyr7="311" pc="null">Done</span> <span class="hps" closure_uid_fxoyr7="312" pc="null">that too,</span> <span class="hps" closure_uid_fxoyr7="313" pc="null">up</span> <span class="hps" closure_uid_fxoyr7="314" pc="null">to the last</span> <span class="hps" closure_uid_fxoyr7="315" pc="null">step,</span> <span class="hps" closure_uid_fxoyr7="316" pc="null">I place</span> <span class="hps" closure_uid_fxoyr7="317" pc="null">the</span> <span class="hps" closure_uid_fxoyr7="318" pc="null">draft excluder</span> <span class="hps" closure_uid_fxoyr7="319" pc="null">seals</span><span closure_uid_fxoyr7="320" pc="null">.</span><br closure_uid_fxoyr7="349" pc="null" /><span class="hps" closure_uid_fxoyr7="321" pc="null">These</span><span closure_uid_fxoyr7="322" pc="null">,</span> <span class="hps" closure_uid_fxoyr7="323" pc="null">in closing,</span> <span class="hps" closure_uid_fxoyr7="324" pc="null">sealed</span> <span class="hps" closure_uid_fxoyr7="325" pc="null">the</span> <span class="hps" closure_uid_fxoyr7="326" pc="null">fixture,</span> <span class="hps" closure_uid_fxoyr7="327" pc="null">significantly improving</span> <span class="hps" closure_uid_fxoyr7="328" pc="null">the insulation</span><span closure_uid_fxoyr7="329" pc="null">.</span><br closure_uid_fxoyr7="351" pc="null" /><span class="hps" closure_uid_fxoyr7="330" pc="null">The doors</span> <span class="hps" closure_uid_fxoyr7="331" pc="null">have the same</span> <span class="hps" closure_uid_fxoyr7="332" pc="null">problem</span><span closure_uid_fxoyr7="333" pc="null">,</span> <span class="hps" closure_uid_fxoyr7="334" pc="null">adding</span> <span class="hps" closure_uid_fxoyr7="335" pc="null">another</span> <span class="hps" closure_uid_fxoyr7="336" pc="null">door</span> <span class="hps" closure_uid_fxoyr7="337" pc="null">a few feet</span> <span class="hps" closure_uid_fxoyr7="338" pc="null">away</span> <span class="hps" closure_uid_fxoyr7="339" pc="null">from</span><br closure_uid_fxoyr7="353" pc="null" /><span class="hps" closure_uid_fxoyr7="340" pc="null">main</span> <span class="hps" closure_uid_fxoyr7="341" pc="null">break</span> <span class="hps" closure_uid_fxoyr7="342" pc="null">the</span> <span class="hps" closure_uid_fxoyr7="343" pc="null">airflow</span> <span class="hps" closure_uid_fxoyr7="344" pc="null">into the house</span><span closure_uid_fxoyr7="345" pc="null">.</span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.blogger.com/%3Ca%20href=%22http://www.tweetadder.com/idevaffiliate/idevaffiliate.php?id=14022_10_3_28" target="_blank">auto follow distance</a>" target="_blank"><img border="0" height="239" rea="true" src="http://4.bp.blogspot.com/-VS4JXHapPgM/Tvh-gWp6vMI/AAAAAAAAAD4/WUIOAig58eA/s320/para.jpg" width="320" /></a></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span a="undefined" c="4" closure_uid_m0w86r="293" id="result_box" lang="ru" pc="null"><span class="hps" closure_uid_m0w86r="131" pc="null">Каждый год</span> <span class="hps" closure_uid_m0w86r="132" pc="null">зимой</span> <span class="hps" closure_uid_m0w86r="133" pc="null">приезжает в</span> <span class="hps" closure_uid_m0w86r="134" pc="null">дом, мы</span> <span class="hps" closure_uid_m0w86r="135" pc="null">подходим к</span> <span class="hps" closure_uid_m0w86r="136" pc="null">проникновению</span> <span class="hps" closure_uid_m0w86r="137" pc="null">холода и ветра.</span><br closure_uid_m0w86r="262" pc="null" /><span closure_uid_m0w86r="138" pc="null">Дом, который</span> <span class="hps" closure_uid_m0w86r="139" pc="null">несколько лет,</span> <span class="hps" closure_uid_m0w86r="140" pc="null">как правило, имеет</span> <span class="hps" closure_uid_m0w86r="141" pc="null">деревянные двери</span> <span class="hps" closure_uid_m0w86r="142" pc="null">и окна.</span> <span class="hps" closure_uid_m0w86r="143" pc="null">Как</span><br closure_uid_m0w86r="264" pc="null" /><span class="hps" closure_uid_m0w86r="144" pc="null">меньше тратить</span> <span class="hps" closure_uid_m0w86r="145" pc="null">на отопление</span> <span class="hps" closure_uid_m0w86r="146" pc="null">и</span> <span class="hps" closure_uid_m0w86r="147" pc="null">дом</span> <span class="hps" closure_uid_m0w86r="148" pc="null">теплее.</span> <span class="hps" closure_uid_m0w86r="149" pc="null">Тратьте меньше</span> <span class="hps" closure_uid_m0w86r="150" pc="null">на энергоносители</span> <span class="hps" closure_uid_m0w86r="151" pc="null">не так просто</span><span closure_uid_m0w86r="152" pc="null">, вы должны</span> <span class="hps" closure_uid_m0w86r="153" pc="null">инвестировать в</span> <span class="hps" closure_uid_m0w86r="154" pc="null">котел</span> <span class="hps" closure_uid_m0w86r="155" pc="null">последнего поколения</span><span closure_uid_m0w86r="156" pc="null">,</span> <span class="hps" closure_uid_m0w86r="157" pc="null">предназначенных для оптимизации</span> <span class="hps" closure_uid_m0w86r="158" pc="null">расхода топлива.</span> <span class="hps" closure_uid_m0w86r="159" pc="null">Важный </span><span class="hps" closure_uid_m0w86r="160" pc="null">как и</span> <span class="hps" closure_uid_m0w86r="161" pc="null">posizionti</span> <span class="hps" closure_uid_m0w86r="162" pc="null">радиаторов.</span> <span class="hps" closure_uid_m0w86r="163" pc="null">В зависимости от размера</span> <span class="hps" closure_uid_m0w86r="164" pc="null">и позиции</span> <span class="hps" closure_uid_m0w86r="165" pc="null">номера,</span> <span class="hps" closure_uid_m0w86r="166" pc="null">я должен установить</span> <span class="hps" closure_uid_m0w86r="167" pc="null">радиаторы</span> <span class="hps" closure_uid_m0w86r="168" pc="null">не в состоянии</span> <span class="hps" closure_uid_m0w86r="169" pc="null">отапливать помещение</span> <span class="hps" closure_uid_m0w86r="170" pc="null">достаточности.</span> <span class="hps" closure_uid_m0w86r="171" pc="null">Радиаторы</span> <span class="hps" closure_uid_m0w86r="172" pc="null">сделаны из маленьких</span> <span class="hps" closure_uid_m0w86r="173" pc="null">мала.</span><br closure_uid_m0w86r="268" pc="null" /><span class="hps" closure_uid_m0w86r="174" pc="null">Вещь</span><span closure_uid_m0w86r="175" pc="null">, которую я хочу</span> <span class="hps" closure_uid_m0w86r="176" pc="null">лечить</span> <span class="hps" closure_uid_m0w86r="177" pc="null">являются</span> <span class="hps" closure_uid_m0w86r="178" pc="null">окна.</span> <span class="hps" closure_uid_m0w86r="179" pc="null">Не думайте,</span> <span class="hps" closure_uid_m0w86r="180" pc="null">что двери</span> <span class="hps" closure_uid_m0w86r="181" pc="null">нового поколения</span><br closure_uid_m0w86r="270" pc="null" /><span class="hps" closure_uid_m0w86r="182" pc="null">После</span> <span class="hps" closure_uid_m0w86r="183" pc="null">установки</span> <span class="hps" closure_uid_m0w86r="184" pc="null">не требует</span> <span class="hps" closure_uid_m0w86r="185" pc="null">технического обслуживания.</span> <span class="hps" closure_uid_m0w86r="186" pc="null">Хотя</span> <span class="hps" closure_uid_m0w86r="187" pc="null">ПВХ,</span> <span class="hps" closure_uid_m0w86r="188" pc="null">АЛЮМИНИЯ</span> <span class="hps" closure_uid_m0w86r="189" pc="null">потребности</span> <span class="hps" closure_uid_m0w86r="190" pc="null">корректировки</span><span closure_uid_m0w86r="191" pc="null">, очистки</span> <span class="hps" closure_uid_m0w86r="192" pc="null">печатей и</span> <span class="hps" closure_uid_m0w86r="193" pc="null">регулярно</span> <span class="hps" closure_uid_m0w86r="194" pc="null">распыления</span> <span class="hps" closure_uid_m0w86r="195" pc="null">силиконовый спрей</span><span closure_uid_m0w86r="196" pc="null">, чтобы держать их</span> <span class="hps" closure_uid_m0w86r="197" pc="null">мягкими.</span> <span class="hps" closure_uid_m0w86r="198" pc="null">Деревянные двери и окна</span> <span class="hps" closure_uid_m0w86r="199" pc="null">требуют технического обслуживания</span><span closure_uid_m0w86r="200" pc="null">, даже</span> <span class="hps" closure_uid_m0w86r="201" pc="null">по сравнению с аналогичным</span> <span class="hps" closure_uid_m0w86r="202" pc="null">живописи с</span> <span class="hps" closure_uid_m0w86r="203" pc="null">продукции, рекомендуемой</span> <span class="hps" closure_uid_m0w86r="204" pc="null">дома.</span><br closure_uid_m0w86r="272" pc="null" /><span class="hps" closure_uid_m0w86r="205" pc="null">Кто</span> <span class="hps" closure_uid_m0w86r="206" pc="null">двери и окна</span> <span class="hps" closure_uid_m0w86r="207" pc="null">старых зданий</span><span closure_uid_m0w86r="208" pc="null">, как можно</span> <span class="hps" closure_uid_m0w86r="209" pc="null">решить</span> <span class="hps" closure_uid_m0w86r="210" pc="null">инфильтрации воздуха</span><span closure_uid_m0w86r="211" pc="null">,</span> <span class="hps" closure_uid_m0w86r="212" pc="null">так раздражает</span><span closure_uid_m0w86r="213" pc="null">?</span><br closure_uid_m0w86r="274" pc="null" /><span closure_uid_m0w86r="214" pc="null">Поддержание</span> <span class="hps" closure_uid_m0w86r="215" pc="null">одинарные или двойные</span> <span class="hps" closure_uid_m0w86r="216" pc="null">стеклопакеты</span><span closure_uid_m0w86r="217" pc="null">, желательно в</span> <span class="hps" closure_uid_m0w86r="218" pc="null">начале лета.</span><br closure_uid_m0w86r="276" pc="null" /><span class="hps" closure_uid_m0w86r="219" pc="null">Сначала убедитесь, что</span> <span class="hps" closure_uid_m0w86r="220" pc="null">кадры и</span> <span class="hps" closure_uid_m0w86r="221" pc="null">кадры</span> <span class="hps" closure_uid_m0w86r="222" pc="null">не повреждены</span><span closure_uid_m0w86r="223" pc="null">, в противном случае</span><span closure_uid_m0w86r="224" pc="null">, с</span> <span class="hps" closure_uid_m0w86r="225" pc="null">помощью</span> <span class="hps" closure_uid_m0w86r="226" pc="null">холма</span><br closure_uid_m0w86r="278" pc="null" /><span class="hps" closure_uid_m0w86r="227" pc="null">осуществлять</span> <span class="hps" closure_uid_m0w86r="228" pc="null">кадра в</span> <span class="hps" closure_uid_m0w86r="229" pc="null">исходное состояние.</span> <span class="hps" closure_uid_m0w86r="230" pc="null">С</span> <span class="hps" closure_uid_m0w86r="231" pc="null">зажимами</span><span closure_uid_m0w86r="232" pc="null">, клеи и</span> <span class="hps" closure_uid_m0w86r="233" pc="null">замазки</span> <span class="hps" closure_uid_m0w86r="234" pc="null">можно</span> <span class="hps" closure_uid_m0w86r="235" pc="null">сделать все.</span><br closure_uid_m0w86r="280" pc="null" /><span class="hps" closure_uid_m0w86r="236" pc="null">Для улучшения</span> <span class="hps" closure_uid_m0w86r="237" pc="null">изоляции</span><span closure_uid_m0w86r="238" pc="null">, управление</span> <span class="hps" closure_uid_m0w86r="239" pc="null">окнами</span> <span class="hps" closure_uid_m0w86r="240" pc="null">крепятся к</span> <span class="hps" closure_uid_m0w86r="241" pc="null">раме,</span> <span class="hps" closure_uid_m0w86r="242" pc="null">в противном случае</span> <span class="hps" closure_uid_m0w86r="243" pc="null">добавить</span> <span class="hps" closure_uid_m0w86r="244" pc="null">шпаклевки</span> <span class="hps" closure_uid_m0w86r="245" pc="null">остекление </span><span class="hps" closure_uid_m0w86r="246" pc="null">новая</span> <span class="hps" closure_uid_m0w86r="247" pc="null">(мягкая)</span> <span class="hps" closure_uid_m0w86r="248" pc="null">или силикона.</span> <span class="hps" closure_uid_m0w86r="249" pc="null">Управление</span> <span class="hps" closure_uid_m0w86r="250" pc="null">настройки верны</span> <span class="hps" closure_uid_m0w86r="251" pc="null">(высот</span> <span class="hps" closure_uid_m0w86r="252" pc="null">и наклонов</span><span closure_uid_m0w86r="253" pc="null">) </span><span class="hps" closure_uid_m0w86r="254" pc="null">и дать мне</span> <span class="hps" closure_uid_m0w86r="255" pc="null">хорошее уплотнение.</span> <span class="hps" closure_uid_m0w86r="256" pc="null">Я проверяю</span> <span class="hps" closure_uid_m0w86r="257" pc="null">также</span> <span class="hps" closure_uid_m0w86r="258" pc="null">механизм</span> <span class="hps" closure_uid_m0w86r="259" pc="null">Cremonese</span><span closure_uid_m0w86r="260" pc="null">.</span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.blogger.com/%3Ca%20href=%22http://www.tweetadder.com/idevaffiliate/idevaffiliate.php?id=14022_0_3_43" target="_blank">future tweet</a>" target="_blank"><img border="0" rea="true" src="http://3.bp.blogspot.com/-en5UA_Ce-v4/Tvh-559gqGI/AAAAAAAAAEQ/YrY5nuVf1XA/s1600/paraspiffero.jpg" /></a></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
<span a="undefined" c="4" closure_uid_m0w86r="293" lang="ru" pc="null"><span closure_uid_m0w86r="260" pc="null"><span a="undefined" c="4" class="long_text" closure_uid_wuz0y4="330" lang="ru" pc="null"><span class="hps" closure_uid_wuz0y4="279" pc="null">Теперь я могу</span> <span class="hps" closure_uid_wuz0y4="280" pc="null">рисовать.</span><br closure_uid_wuz0y4="308" pc="null" /><span class="hps" closure_uid_wuz0y4="281" pc="null">Совершено</span> <span class="hps" closure_uid_wuz0y4="282" pc="null">это тоже,</span> <span class="hps" closure_uid_wuz0y4="283" pc="null">до</span> <span class="hps" closure_uid_wuz0y4="284" pc="null">последнего шага</span><span closure_uid_wuz0y4="285" pc="null">, я помещаю</span> <span class="hps" closure_uid_wuz0y4="286" pc="null">печатей</span> <span class="hps" closure_uid_wuz0y4="287" pc="null">проект</span> <span class="hps" closure_uid_wuz0y4="288" pc="null">Excluder</span><span closure_uid_wuz0y4="289" pc="null">.</span><br closure_uid_wuz0y4="310" pc="null" /><span class="hps" closure_uid_wuz0y4="290" pc="null">Эти</span><span closure_uid_wuz0y4="291" pc="null">, в заключение</span><span closure_uid_wuz0y4="292" pc="null">, запечатанные</span> <span class="hps" closure_uid_wuz0y4="293" pc="null">прибора</span><span closure_uid_wuz0y4="294" pc="null">, что значительно улучшает</span> <span class="hps" closure_uid_wuz0y4="295" pc="null">изоляцию.</span><br closure_uid_wuz0y4="312" pc="null" /><span closure_uid_wuz0y4="296" pc="null">Двери</span> <span class="hps" closure_uid_wuz0y4="297" pc="null">имеют те же проблемы</span><span closure_uid_wuz0y4="298" pc="null">, добавив</span> <span class="hps" closure_uid_wuz0y4="299" pc="null">еще одну дверь</span> <span class="hps" closure_uid_wuz0y4="300" pc="null">в нескольких футах</span> <span class="hps" closure_uid_wuz0y4="301" pc="null">от</span><br closure_uid_wuz0y4="314" pc="null" /><span class="hps" closure_uid_wuz0y4="302" pc="null">Основной</span> <span class="hps" closure_uid_wuz0y4="303" pc="null">разрыв</span> <span class="hps" closure_uid_wuz0y4="304" pc="null">потока воздуха</span> <span class="hps" closure_uid_wuz0y4="305" pc="null">в</span> <span class="hps" closure_uid_wuz0y4="306" pc="null">доме.</span></span></span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><br />
<br />
<a href="http://www.tweetadder.com/idevaffiliate/idevaffiliate.php?id=14022_0_1_13" target="_blank"><img alt="" border="0" height="250" src="http://www.tweetadder.com/idevaffiliate/banners/300x250.gif" width="300" /></a>Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com034170 Gorizia GO, Italia45.947847380206817 13.62629087301638745.906477880206815 13.578836373016387 45.989216880206818 13.673745373016388tag:blogger.com,1999:blog-4421047768738780888.post-11984952575074668622011-05-27T11:16:00.000-07:002011-05-27T11:16:36.774-07:00Polished brass Lucida ottoni<a href="http://ad.zanox.com/ppc/?18608490C231128678T"><img align="bottom" alt="generic_it_468x60.gif" border="0" height="60" hspace="1" src="http://ad.zanox.com/ppv/?18608490C231128678" width="468" /></a><br />
<br />
<br />
<br />
<br />
----------------------------<br />
<br />
<div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div>Indicazioni sulla <a href="http://www.hobbyferramenta.com/">lucidatura</a> ottoni<br />
<div><div><div><div><div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
<br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNv8cQ7prd6iprnqnfJOxFzoVff7_ZxxP0u796fOY5lGDUrb6Vda0cbsezQqurrCs9Cr8Wqo_K265yl73YMhuVnVfXnBDc381Rx5dQF_CxhczKsDsgcF-yP-VKw2zkpH0R1GHFUo2ocDV4/s1600/ba.JPG"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5611450043176704610" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNv8cQ7prd6iprnqnfJOxFzoVff7_ZxxP0u796fOY5lGDUrb6Vda0cbsezQqurrCs9Cr8Wqo_K265yl73YMhuVnVfXnBDc381Rx5dQF_CxhczKsDsgcF-yP-VKw2zkpH0R1GHFUo2ocDV4/s320/ba.JPG" style="cursor: hand; height: 240px; width: 320px;" /></a></div><br />
<br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">L'operazione di lucidatura richiede tempo,<strong> lavoro</strong> e specialmente --</div>pazienza. <br />
Tutto dipende in che condizioni e dall'oggetto da pulire.<br />
<br />
Partiamo dall'inizio. Come prima fase devo asportare tutte le imperfezioni.<br />
<br />
A seconda del articolo, posso usare utensili o mole varie, l'importante è, che <br />
usando tela smeriglio, incomincio il lavoro con grana grossa ( 180) per finire<br />
questa fase con <a href="mailto:hobbyferramenta@gmail.com">grana 400</a>.<br />
<br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">Fase successiva: pulitura</div>posso usare vari platorelli con velcro da applicare per esempio sul trapano con <br />
aggiunta di <a href="http://www.riparacasa.blogspot.com/">pasta abrasiva</a>.<br />
<br />
Per arrivare a livelli buoni, prima uso una pasta sgrezzante e nella fase successiva<br />
pasta finissima per la lucidatura e brillantatura.<br />
<br />
Preciso, che le due operazioni sono separate e non posso usare lo stesso platorello, <br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">sporco dal prodotto precedente. Non otterrei risultati desiderati.</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><br />
<div class="separator" style="clear: both; text-align: center;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5611450546488877970" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6fYvI9dADCusWn3gvQZXDkQtqDgKWWM6KwSQPR8zrYp9Px2n8im2JFJt-GlvKV4VQA1mmLVHfd1DEPwFl1WEYeryX_ZAipl-5PMjK-KcLyJfz6jKTOQN1LhGcIwQPuZ-aBj9BvWj6FliK/s320/b4.JPG" style="height: 240px; width: 320px;" /></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">Ora l'oggetto è sporco di pasta abrasiva, per pulire dal grasso e ossido il miglior</div>prodotto è il diluente nitro. Lavo completamente il pezzo e asciugo con lo straccio.<br />
Sè vedo delle imperfezioni in certi punti, riprendo la pasta e l'utensile per lucidare,<br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">ripeto l'operazione nel punto mancante.</div><br />
Lavato e sgrassato;<br />
per mantenere la lucidatura posso usare una vernice trasparente,<br />
distribuita in modo uniforme con bombolette spray<br />
<br />
<br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkm-tR-mPNXeXVrx8H7faUnFwxiBQZOUjjs1jWRfZq1nkzO7ksiJEIElnfE2JSLP72RkrckL0bI_KR2lflD1e1uaRRb365UdHPLcEdDx85M3gsarjbIeG2Wiv1uYF020W7z27eXHQksGIu/s1600/b6.JPG" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5611450358603394850" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkm-tR-mPNXeXVrx8H7faUnFwxiBQZOUjjs1jWRfZq1nkzO7ksiJEIElnfE2JSLP72RkrckL0bI_KR2lflD1e1uaRRb365UdHPLcEdDx85M3gsarjbIeG2Wiv1uYF020W7z27eXHQksGIu/s320/b6.JPG" style="height: 240px; width: 320px;" /></a></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span class="short_text" closure_uid_yd63s4="90" ec="undefined" lang="en" wg="4"><span class="hps" closure_uid_yd63s4="104" title="Fai clic per visualizzare le traduzioni alternative">Notes on the</span><a href="http://www.hobyferramenta.com/"> <span class="hps" closure_uid_yd63s4="105" title="Fai clic per visualizzare le traduzioni alternative">polishing</span></a> <span class="hps" closure_uid_yd63s4="106" title="Fai clic per visualizzare le traduzioni alternative">brass</span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wMl2CAVV8KZwHStXHr9WR23wxWLCoLa7gX7HbAx9aOEpJxFokWpBTV2Uq0wHmhbSFnKVoZErLBMDbLVeAUEfMiWVALb-0BeWM3m2WzR6CoBGkQyCq0Dr-kUklWMz1qVK37hAd-V_i4gu/s1600/b3.JPG" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5611450701092800898" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wMl2CAVV8KZwHStXHr9WR23wxWLCoLa7gX7HbAx9aOEpJxFokWpBTV2Uq0wHmhbSFnKVoZErLBMDbLVeAUEfMiWVALb-0BeWM3m2WzR6CoBGkQyCq0Dr-kUklWMz1qVK37hAd-V_i4gu/s320/b3.JPG" style="height: 240px; width: 320px;" /></a><span class="short_text" closure_uid_yd63s4="90" ec="undefined" lang="en" wg="4"><span class="hps" closure_uid_yd63s4="106" title="Fai clic per visualizzare le traduzioni alternative"></span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span class="short_text" closure_uid_yd63s4="90" ec="undefined" lang="en" wg="4"><span class="hps" closure_uid_yd63s4="106" title="Fai clic per visualizzare le traduzioni alternative"><span closure_uid_yd63s4="90" ec="undefined" lang="en" wg="4"><span class="hps" closure_uid_yd63s4="6199" title="Fai clic per visualizzare le traduzioni alternative">The</span> <span class="hps" closure_uid_yd63s4="6200" title="Fai clic per visualizzare le traduzioni alternative">polishing</span> <span class="hps" closure_uid_yd63s4="6201" title="Fai clic per visualizzare le traduzioni alternative">operation</span> <span class="hps" closure_uid_yd63s4="6202" title="Fai clic per visualizzare le traduzioni alternative">requires</span> <span class="hps" closure_uid_yd63s4="6203" title="Fai clic per visualizzare le traduzioni alternative">time, effort</span> <span class="hps" closure_uid_yd63s4="6204" title="Fai clic per visualizzare le traduzioni alternative">and</span> <span class="hps" closure_uid_yd63s4="6205" title="Fai clic per visualizzare le traduzioni alternative">especially</span> <span class="hps" closure_uid_yd63s4="6206" title="Fai clic per visualizzare le traduzioni alternative">-</span><br closure_uid_yd63s4="6362" /><br closure_uid_yd63s4="6363" /><span class="hps" closure_uid_yd63s4="6207" title="Fai clic per visualizzare le traduzioni alternative">patience</span><span closure_uid_yd63s4="6208" title="Fai clic per visualizzare le traduzioni alternative">.</span><br closure_uid_yd63s4="6364" /><br closure_uid_yd63s4="6365" /><span class="hps" closure_uid_yd63s4="6209" title="Fai clic per visualizzare le traduzioni alternative">It all depends on</span> <span class="hps" closure_uid_yd63s4="6210" title="Fai clic per visualizzare le traduzioni alternative">what the state</span> <span class="hps" closure_uid_yd63s4="6211" title="Fai clic per visualizzare le traduzioni alternative">and</span> <span class="hps" closure_uid_yd63s4="6212" title="Fai clic per visualizzare le traduzioni alternative">the object</span> <span class="hps" closure_uid_yd63s4="6213" title="Fai clic per visualizzare le traduzioni alternative">to be cleaned</span><span closure_uid_yd63s4="6214" title="Fai clic per visualizzare le traduzioni alternative">.</span><br closure_uid_yd63s4="6366" /><br closure_uid_yd63s4="6367" /><span class="hps" closure_uid_yd63s4="6215" title="Fai clic per visualizzare le traduzioni alternative">We start</span> <span class="hps" closure_uid_yd63s4="6216" title="Fai clic per visualizzare le traduzioni alternative">from the beginning.</span> <span class="hps" closure_uid_yd63s4="6217" title="Fai clic per visualizzare le traduzioni alternative">As a first</span> <span class="hps" closure_uid_yd63s4="6218" title="Fai clic per visualizzare le traduzioni alternative">step</span> <span class="hps" closure_uid_yd63s4="6219" title="Fai clic per visualizzare le traduzioni alternative">I have to</span> <span class="hps" closure_uid_yd63s4="6220" title="Fai clic per visualizzare le traduzioni alternative">remove all</span> <span class="hps" closure_uid_yd63s4="6221" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_yd63s4="6222" title="Fai clic per visualizzare le traduzioni alternative">imperfections</span><span closure_uid_yd63s4="6223" title="Fai clic per visualizzare le traduzioni alternative">.</span><br closure_uid_yd63s4="6368" /><br closure_uid_yd63s4="6369" /><span class="hps" closure_uid_yd63s4="6224" title="Fai clic per visualizzare le traduzioni alternative">According to</span> <span class="hps" closure_uid_yd63s4="6225" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_yd63s4="6226" title="Fai clic per visualizzare le traduzioni alternative">article</span><span closure_uid_yd63s4="6227" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_yd63s4="6228" title="Fai clic per visualizzare le traduzioni alternative">I</span> <span class="hps" closure_uid_yd63s4="6229" title="Fai clic per visualizzare le traduzioni alternative">use</span> <span class="hps" closure_uid_yd63s4="6230" title="Fai clic per visualizzare le traduzioni alternative">various</span> <span class="hps" closure_uid_yd63s4="6231" title="Fai clic per visualizzare le traduzioni alternative">tools</span> <span class="hps" closure_uid_yd63s4="6232" title="Fai clic per visualizzare le traduzioni alternative">or</span> <span class="hps" closure_uid_yd63s4="6233" title="Fai clic per visualizzare le traduzioni alternative">grinding wheels</span><span closure_uid_yd63s4="6234" title="Fai clic per visualizzare le traduzioni alternative">, it is important</span> <span class="hps" closure_uid_yd63s4="6235" title="Fai clic per visualizzare le traduzioni alternative">that</span><br closure_uid_yd63s4="6370" /><span class="hps" closure_uid_yd63s4="6236" title="Fai clic per visualizzare le traduzioni alternative">using</span> <span class="hps" closure_uid_yd63s4="6237" title="Fai clic per visualizzare le traduzioni alternative">emery cloth</span><span closure_uid_yd63s4="6238" title="Fai clic per visualizzare le traduzioni alternative">, began</span> <span class="hps" closure_uid_yd63s4="6239" title="Fai clic per visualizzare le traduzioni alternative">working</span> <span class="hps" closure_uid_yd63s4="6240" title="Fai clic per visualizzare le traduzioni alternative">with</span> <span class="hps" closure_uid_yd63s4="6241" title="Fai clic per visualizzare le traduzioni alternative">coarse</span></span></span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span class="short_text" closure_uid_yd63s4="90" ec="undefined" lang="en" wg="4"><span class="hps" closure_uid_yd63s4="106" title="Fai clic per visualizzare le traduzioni alternative"><span closure_uid_yd63s4="90" ec="undefined" lang="en" wg="4"><span class="hps" closure_uid_yd63s4="6241" title="Fai clic per visualizzare le traduzioni alternative"></span><span class="hps" closure_uid_yd63s4="6242" title="Fai clic per visualizzare le traduzioni alternative">(180</span><span closure_uid_yd63s4="6243" title="Fai clic per visualizzare le traduzioni alternative">)</span> <span class="hps" closure_uid_yd63s4="6244" title="Fai clic per visualizzare le traduzioni alternative">to</span> <span class="hps" closure_uid_yd63s4="6245" title="Fai clic per visualizzare le traduzioni alternative">finish</span><br closure_uid_yd63s4="6371" /><span class="hps" closure_uid_yd63s4="6246" title="Fai clic per visualizzare le traduzioni alternative">this time</span> <span class="hps" closure_uid_yd63s4="6247" title="Fai clic per visualizzare le traduzioni alternative">with</span> <span class="hps" closure_uid_yd63s4="6248" title="Fai clic per visualizzare le traduzioni alternative">400 grit</span><span closure_uid_yd63s4="6249" title="Fai clic per visualizzare le traduzioni alternative">.</span></span></span></span></div><div class="almost_half_cell" closure_uid_yd63s4="92" id="gt-res-content"><div closure_uid_yd63s4="91" dir="ltr" style="zoom: 1;"><span closure_uid_yd63s4="90" ec="undefined" id="result_box" lang="en" wg="4"><span class="hps" closure_uid_yd63s4="114" title="Fai clic per visualizzare le traduzioni alternative"></span></span></div></div></div></div></div></div></div></div></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuudnAHKm1e_64U4pMaGJinmmf0t5F29bhvWzQSrbBfULEomLn11F0GcKy0PNw4U9QtuaanHZFgKkaQm0J_UB-zAhJwComU_P9v43N3AIsD_7wm2g4ooj-zLYXMCYNcn_9HTpsnNoY_v9c/s1600/b1.JPG" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5611450847811438210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuudnAHKm1e_64U4pMaGJinmmf0t5F29bhvWzQSrbBfULEomLn11F0GcKy0PNw4U9QtuaanHZFgKkaQm0J_UB-zAhJwComU_P9v43N3AIsD_7wm2g4ooj-zLYXMCYNcn_9HTpsnNoY_v9c/s320/b1.JPG" style="height: 240px; width: 320px;" /></a></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_TqZbU0Zk9b2v8QuPdfFyzG14Smp8YDZXkqH8xVk8NQpHgy-V3TPHioebJOYjPf7ZmbfTlQqryEa09Pnvg1wyxd5BHhCM3mQB3hnFOzp0G-W8eP9hsscuQBheKoSQ81nfPz12xUp5IzEx/s1600/b2.JPG" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5611450970452470130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_TqZbU0Zk9b2v8QuPdfFyzG14Smp8YDZXkqH8xVk8NQpHgy-V3TPHioebJOYjPf7ZmbfTlQqryEa09Pnvg1wyxd5BHhCM3mQB3hnFOzp0G-W8eP9hsscuQBheKoSQ81nfPz12xUp5IzEx/s320/b2.JPG" style="height: 240px; width: 320px;" /></a></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><span class="hps" closure_uid_yd63s4="6250" title="Fai clic per visualizzare le traduzioni alternative">Next step</span><span closure_uid_yd63s4="6251" title="Fai clic per visualizzare le traduzioni alternative">:</span> <span class="hps" closure_uid_yd63s4="6252" title="Fai clic per visualizzare le traduzioni alternative">cleaning</span><br />
<span class="hps" closure_uid_yd63s4="6253" title="Fai clic per visualizzare le traduzioni alternative">I</span> <span class="hps" closure_uid_yd63s4="6254" title="Fai clic per visualizzare le traduzioni alternative">use</span> <span class="hps" closure_uid_yd63s4="6255" title="Fai clic per visualizzare le traduzioni alternative">several</span> <span class="hps" closure_uid_yd63s4="6256" title="Fai clic per visualizzare le traduzioni alternative">pads</span> <span class="hps" closure_uid_yd63s4="6257" title="Fai clic per visualizzare le traduzioni alternative">with</span> <span class="hps" closure_uid_yd63s4="6258" title="Fai clic per visualizzare le traduzioni alternative">velcro</span> <span class="hps" closure_uid_yd63s4="6259" title="Fai clic per visualizzare le traduzioni alternative">to</span> <span class="hps" closure_uid_yd63s4="6260" title="Fai clic per visualizzare le traduzioni alternative">be applied</span> <span class="hps" closure_uid_yd63s4="6261" title="Fai clic per visualizzare le traduzioni alternative">for</span> <span class="hps" closure_uid_yd63s4="6262" title="Fai clic per visualizzare le traduzioni alternative">example</span> <span class="hps" closure_uid_yd63s4="6263" title="Fai clic per visualizzare le traduzioni alternative">on the</span> <span class="hps" closure_uid_yd63s4="6264" title="Fai clic per visualizzare le traduzioni alternative">drill</span><br />
<span class="hps" closure_uid_yd63s4="6265" title="Fai clic per visualizzare le traduzioni alternative">addition</span> <span class="hps" closure_uid_yd63s4="6266" title="Fai clic per visualizzare le traduzioni alternative">of compound</span><span closure_uid_yd63s4="6267" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<br />
<span class="hps" closure_uid_yd63s4="6268" title="Fai clic per visualizzare le traduzioni alternative">To arrive</span> <span class="hps" closure_uid_yd63s4="6269" title="Fai clic per visualizzare le traduzioni alternative">at</span> <span class="hps" closure_uid_yd63s4="6270" title="Fai clic per visualizzare le traduzioni alternative">good</span> <span class="hps" closure_uid_yd63s4="6271" title="Fai clic per visualizzare le traduzioni alternative">levels</span><span closure_uid_yd63s4="6272" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_yd63s4="6273" title="Fai clic per visualizzare le traduzioni alternative">first</span> <span class="hps" closure_uid_yd63s4="6274" title="Fai clic per visualizzare le traduzioni alternative">use</span> <span class="hps" closure_uid_yd63s4="6275" title="Fai clic per visualizzare le traduzioni alternative">a</span> <span class="hps" closure_uid_yd63s4="6276" title="Fai clic per visualizzare le traduzioni alternative">paste</span> <span class="hps" closure_uid_yd63s4="6277" title="Fai clic per visualizzare le traduzioni alternative">sgrezzante</span> <span class="hps" closure_uid_yd63s4="6278" title="Fai clic per visualizzare le traduzioni alternative">and</span> <span class="hps" closure_uid_yd63s4="6279" title="Fai clic per visualizzare le traduzioni alternative">in the next step</span><br />
<span class="hps" closure_uid_yd63s4="6280" title="Fai clic per visualizzare le traduzioni alternative">very fine paste</span> <span class="hps" closure_uid_yd63s4="6281" title="Fai clic per visualizzare le traduzioni alternative">for</span> <span class="hps" closure_uid_yd63s4="6282" title="Fai clic per visualizzare le traduzioni alternative">polishing</span> <span class="hps" closure_uid_yd63s4="6283" title="Fai clic per visualizzare le traduzioni alternative">and polishing</span><span closure_uid_yd63s4="6284" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<br />
<span class="hps" closure_uid_yd63s4="6285" title="Fai clic per visualizzare le traduzioni alternative">Precise</span><span closure_uid_yd63s4="6286" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_yd63s4="6287" title="Fai clic per visualizzare le traduzioni alternative">that the</span> <span class="hps" closure_uid_yd63s4="6288" title="Fai clic per visualizzare le traduzioni alternative">two</span> <span class="hps" closure_uid_yd63s4="6289" title="Fai clic per visualizzare le traduzioni alternative">operations</span> <span class="hps" closure_uid_yd63s4="6290" title="Fai clic per visualizzare le traduzioni alternative">are</span> <span class="hps" closure_uid_yd63s4="6291" title="Fai clic per visualizzare le traduzioni alternative">separate</span> <span class="hps" closure_uid_yd63s4="6292" title="Fai clic per visualizzare le traduzioni alternative">and</span> <span class="hps" closure_uid_yd63s4="6293" title="Fai clic per visualizzare le traduzioni alternative">can not</span> <span class="hps" closure_uid_yd63s4="6294" title="Fai clic per visualizzare le traduzioni alternative">use the</span> <span class="hps" closure_uid_yd63s4="6295" title="Fai clic per visualizzare le traduzioni alternative">same</span> <span class="hps" closure_uid_yd63s4="6296" title="Fai clic per visualizzare le traduzioni alternative">pad</span><span closure_uid_yd63s4="6297" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_yd63s4="6298" title="Fai clic per visualizzare le traduzioni alternative">dirt</span> <span class="hps" closure_uid_yd63s4="6299" title="Fai clic per visualizzare le traduzioni alternative">from</span> <span class="hps" closure_uid_yd63s4="6300" title="Fai clic per visualizzare le traduzioni alternative">the previous product.</span> <span class="hps" closure_uid_yd63s4="6301" title="Fai clic per visualizzare le traduzioni alternative">Would not get</span> <span class="hps" closure_uid_yd63s4="6302" title="Fai clic per visualizzare le traduzioni alternative">the desired results.</span><br />
<br />
<span class="hps" closure_uid_yd63s4="6303" title="Fai clic per visualizzare le traduzioni alternative">Now</span> <span class="hps" closure_uid_yd63s4="6304" title="Fai clic per visualizzare le traduzioni alternative">the object</span> <span class="hps" closure_uid_yd63s4="6305" title="Fai clic per visualizzare le traduzioni alternative">is</span> <span class="hps" closure_uid_yd63s4="6306" title="Fai clic per visualizzare le traduzioni alternative">dirty</span> <span class="hps" closure_uid_yd63s4="6307" title="Fai clic per visualizzare le traduzioni alternative">abrasive paste</span> <span class="hps" closure_uid_yd63s4="6308" title="Fai clic per visualizzare le traduzioni alternative">to</span> <span class="hps" closure_uid_yd63s4="6309" title="Fai clic per visualizzare le traduzioni alternative">clean</span> <span class="hps" closure_uid_yd63s4="6310" title="Fai clic per visualizzare le traduzioni alternative">grease</span> <span class="hps" closure_uid_yd63s4="6311" title="Fai clic per visualizzare le traduzioni alternative">and</span> <span class="hps" closure_uid_yd63s4="6312" title="Fai clic per visualizzare le traduzioni alternative">oxide,</span> <span class="hps" closure_uid_yd63s4="6313" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_yd63s4="6314" title="Fai clic per visualizzare le traduzioni alternative">best</span><br />
<span class="hps" closure_uid_yd63s4="6315" title="Fai clic per visualizzare le traduzioni alternative">product is</span> <span class="hps" closure_uid_yd63s4="6316" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_yd63s4="6317" title="Fai clic per visualizzare le traduzioni alternative">nitro</span><span closure_uid_yd63s4="6318" title="Fai clic per visualizzare le traduzioni alternative">.</span> <span class="hps" closure_uid_yd63s4="6319" title="Fai clic per visualizzare le traduzioni alternative">Work</span> <span class="hps" closure_uid_yd63s4="6320" title="Fai clic per visualizzare le traduzioni alternative">piece</span> <span class="hps" closure_uid_yd63s4="6321" title="Fai clic per visualizzare le traduzioni alternative">and</span> <span class="hps" closure_uid_yd63s4="6322" title="Fai clic per visualizzare le traduzioni alternative">completely</span> <span class="hps" closure_uid_yd63s4="6323" title="Fai clic per visualizzare le traduzioni alternative">wipe</span> <span class="hps" closure_uid_yd63s4="6324" title="Fai clic per visualizzare le traduzioni alternative">with</span> <span class="hps" closure_uid_yd63s4="6325" title="Fai clic per visualizzare le traduzioni alternative">a rag</span><span closure_uid_yd63s4="6326" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<span class="hps" closure_uid_yd63s4="6327" title="Fai clic per visualizzare le traduzioni alternative">If I see</span> <span class="hps" closure_uid_yd63s4="6328" title="Fai clic per visualizzare le traduzioni alternative">a flaw</span> <span class="hps" closure_uid_yd63s4="6329" title="Fai clic per visualizzare le traduzioni alternative">in</span> <span class="hps" closure_uid_yd63s4="6330" title="Fai clic per visualizzare le traduzioni alternative">some places</span><span closure_uid_yd63s4="6331" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_yd63s4="6332" title="Fai clic per visualizzare le traduzioni alternative">I take</span> <span class="hps" closure_uid_yd63s4="6333" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_yd63s4="6334" title="Fai clic per visualizzare le traduzioni alternative">dough</span> <span class="hps" closure_uid_yd63s4="6335" title="Fai clic per visualizzare le traduzioni alternative">and</span> <span class="hps" closure_uid_yd63s4="6336" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_yd63s4="6337" title="Fai clic per visualizzare le traduzioni alternative">tool</span> <span class="hps" closure_uid_yd63s4="6338" title="Fai clic per visualizzare le traduzioni alternative">for</span> <span class="hps" closure_uid_yd63s4="6339" title="Fai clic per visualizzare le traduzioni alternative">polishing</span><span closure_uid_yd63s4="6340" title="Fai clic per visualizzare le traduzioni alternative">,</span><br />
<span class="hps" closure_uid_yd63s4="6341" title="Fai clic per visualizzare le traduzioni alternative">I repeat</span> <span class="hps" closure_uid_yd63s4="6342" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_yd63s4="6343" title="Fai clic per visualizzare le traduzioni alternative">operation</span> <span class="hps" closure_uid_yd63s4="6344" title="Fai clic per visualizzare le traduzioni alternative">is missing</span> <span class="hps" closure_uid_yd63s4="6345" title="Fai clic per visualizzare le traduzioni alternative">the point</span><span closure_uid_yd63s4="6346" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<br />
<span class="hps" closure_uid_yd63s4="6347" title="Fai clic per visualizzare le traduzioni alternative">Washed</span> <span class="hps" closure_uid_yd63s4="6348" title="Fai clic per visualizzare le traduzioni alternative">and</span> <span class="hps" closure_uid_yd63s4="6349" title="Fai clic per visualizzare le traduzioni alternative">degreased</span><span closure_uid_yd63s4="6350" title="Fai clic per visualizzare le traduzioni alternative">;</span><br />
<span class="hps" closure_uid_yd63s4="6351" title="Fai clic per visualizzare le traduzioni alternative">to keep</span> <span class="hps" closure_uid_yd63s4="6352" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_yd63s4="6353" title="Fai clic per visualizzare le traduzioni alternative">polish</span> <span class="hps" closure_uid_yd63s4="6354" title="Fai clic per visualizzare le traduzioni alternative">I can use</span> <span class="hps" closure_uid_yd63s4="6355" title="Fai clic per visualizzare le traduzioni alternative">a</span> <span class="hps" closure_uid_yd63s4="6356" title="Fai clic per visualizzare le traduzioni alternative">clear varnish</span><span closure_uid_yd63s4="6357" title="Fai clic per visualizzare le traduzioni alternative">,</span><br />
<span class="hps" closure_uid_yd63s4="6358" title="Fai clic per visualizzare le traduzioni alternative">distributed</span> <span class="hps" closure_uid_yd63s4="6359" title="Fai clic per visualizzare le traduzioni alternative">evenly</span> <span class="hps" closure_uid_yd63s4="6360" title="Fai clic per visualizzare le traduzioni alternative">with</span> <span class="hps" closure_uid_yd63s4="6361" title="Fai clic per visualizzare le traduzioni alternative">spray cans</span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuO8bXEwQF15hmqmMDISUGr5PjVcXHAk2YJcR30IwmUopJajcS8N-E6e0YlOvgx7AOTpVkM8XnipqBB-1cxkRR1NhkVKenCfU1bqHOyWblQ-zcqEqOl2eURmInEl7SddC5HeK3KxFX1jq6/s1600/b7.JPG" style="margin-left: 1em; margin-right: 1em;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5611451108104263938" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuO8bXEwQF15hmqmMDISUGr5PjVcXHAk2YJcR30IwmUopJajcS8N-E6e0YlOvgx7AOTpVkM8XnipqBB-1cxkRR1NhkVKenCfU1bqHOyWblQ-zcqEqOl2eURmInEl7SddC5HeK3KxFX1jq6/s320/b7.JPG" style="height: 320px; width: 240px;" /></a></div><br />
<br />
<br />
<br />
<a href="http://ad.zanox.com/ppc/?18608484C1011773662T"><img align="bottom" alt="Designershop New 250x120" border="0" height="120" hspace="1" src="http://ad.zanox.com/ppv/?18608484C1011773662" width="250" /></a>Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0tag:blogger.com,1999:blog-4421047768738780888.post-17478219434295377272011-03-17T10:57:00.000-07:002011-05-15T09:22:54.984-07:00Due armadi da unire Two lockers to be joined<div dir="ltr" style="text-align: left;" trbidi="on"><a href="http://ad.zanox.com/ppc/?17900317C684692992T"><img align="bottom" alt="Mutui Image Banner 468 x 60" border="0" height="60" hspace="1" src="http://ad.zanox.com/ppv/?17900317C684692992" width="468" /></a><br />
<br />
<br />
<br />
<div style="margin-bottom: 0cm;"><script type="text/javascript">
// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;
var shortened_urls = new Array("tinyurl.com","3.ly","bit.ly","tiny.cc","short.to","is.gd","tr.im");
var border_colors = new Array( "#00A120;", "#EAA500;", "#F57301;", "#D20003;" );
var background_colors = new Array( "#C3E5CA;", "#FEEFAE;", "#FFD3B0;", "#F5D4C1;" );
var images = new Array ( "linkscanner://safe12.png", "linkscanner://caution12.png", "linkscanner://warning12.png", "linkscanner://blocked12.png" );
var showCleanVerdicts = true;
var showLowRiskVerdicts = true;
var showMedRiskVerdicts = true;
function avg_ls_does_url_contain(url, contain)
{
if ((url == null) || (url.length < 1))
{
return false;
}
var strUrl = new String(url);
// breakup the url to check
var parts = strUrl.split("/");
if (parts.length < 3)
{
return false;
}
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
{
return true;
}
return false;
}
function avg_ls_valid_gmail_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 4))
return false;
var domain= parts[2];
var path = parts[3];
if ((domain.indexOf("mail.google.") != -1) ||
(domain.indexOf("gmail.") != -1))
{
// save the hostname to use getting links
gAvgHostName = "google.com";
return true;
}
return false;
}
function avg_ls_get_parent_div(element)
{
if ((element == null) || (element.parentNode == null))
return null;
while (element != null)
{
if ((element.tagName == "DIV") && element.className &&
(element.className.length > 0))
return element;
element = element.parentNode;
}
// no div
return null;
}
function avg_ls_parse_ads(href)
{
if (!href)
return href;
// check for google ad
var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 0))
return match
}
return href;
}
function avg_ls_get_gmail_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't mark anything but http://
if (element.href.indexOf("mailto") == 0)
continue;
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") &&
((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
)) // right ads
{
// parse for any ads
var newHref = avg_ls_parse_ads(element.href);
// add the image
avg_ls_check_url(doc, element, newHref);
}
}
}
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
}
}
return links;
}
function avg_ls_valid_facebook_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 2))
return false;
var domain= parts[2];
if (domain.indexOf("www.facebook.com") != -1)
{
// save the hostname to use getting links
gAvgHostName = "www.facebook.com";
return true;
}
return false;
}
function avg_ls_get_facebook_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't put verdicts in areas where typing is going on
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") && (parentDiv.className == "Mentions_Input"))
continue;
}
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
avg_ls_check_url(doc, element, element.href);
}
/*///cbk - take it out for now the home page can't access frameElement
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
if (doc.frames[j].frameElement != null )
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
}
avg_ls_get_facebook_links(doc.frames[j].document, processFrames);
}
}
*///cbk
return links;
}
function avg_ls_has_image(element)
{
if ((element == null) || (element.firstChild == null))
return false;
var nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return true;
nextElem = nextElem.nextSibling;
}
return false;
}
function avg_ls_update_image(doc, element, image )
{
if ((doc == null) || (element == null))
return ;
// mark the element as processed
element.setAttribute("avglschecked", "1");
// if no image, nothing to add
if (image == null)
return;
// update the image
if (element && element.firstChild)
{
image_elem = element.firstChild;
element.firstChild.src = image;
}
}
function avg_ls_add_image(doc, element, image, flyover)
{
if ((doc == null) || (element == null))
return;
// if no image, nothing to add
if (image == null)
return;
// create a new image
var img = doc.createElement("img");
img.src = image;
img.border="0";
img.hspace="5";
img.id = "avg_ls_image";
img.setAttribute("title", "");
// append the image to the link
element.appendChild(img);
img = null;
var newImg = element.lastChild;
if (flyover && newImg && newImg.id == "avg_ls_image")
{
newImg.attachEvent("onmouseover", function() {avg_ls_showinline(newImg, flyover)});
newImg.attachEvent("onmouseout", function() {avg_ls_hideinline()});
}
}
var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_gmail_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}
function avg_ls_monitor_facebook(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_facebook_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_facebook(doc, processFrames);}, 1000);
}
function avg_ls_process_links(doc, processFrames)
{
if (avg_ls_valid_gmail_search(doc.location.href))
{
// process the gmail links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_gmail(doc, processFrames);
}
if (avg_ls_valid_facebook_search(doc.location.href))
{
// process the facebook links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_facebook(doc, processFrames);
}
}
function avg_ls_reload(e)
{
avg_ls_process_links(document, true);
}
function avg_ls_onload(e)
{
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
var doc = document;
// set the event handler for the data element to listen for load/reloads
var data_element = doc.getElementById("avglsdata");
if (data_element)
{
// save data element for use in later iframes
gAvgDataElement = data_element;
// rowexit event used to notify javascript of a page data load
avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
avg_ls_add_event(data_element, "rowexit", avg_ls_reload);
// process links for the document
avg_ls_process_links(doc, true);
}
}
function avg_ls_get_anchors(doc)
{
return doc.getElementsByTagName("a");
}
function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
var avg_ls_data = null;
// get the data element
if (gAvgDataElement == null)
{
avg_ls_data = doc.getElementById("avglsdata");
if ((avg_ls_data == null) || (name == null))
{
// data element does not exist
return;
}
gAvgDataElement = avg_ls_data;
}
else
{
avg_ls_data = gAvgDataElement;
}
// for some reason you can't fire and event on an element with no parent node
if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
{
return;
}
// set the attributes
avg_ls_data.setAttribute("function", name);
if (param1)
avg_ls_data.setAttribute("param1", param1);
if (param2)
avg_ls_data.setAttribute("param2", param2);
if (param3)
avg_ls_data.setAttribute("param3", param3);
if (param4)
avg_ls_data.setAttribute("param4", param4);
if (param5)
avg_ls_data.setAttribute("param5", param5);
avg_ls_data.fireEvent("onrowenter");
// get the result
return avg_ls_data.getAttribute("result");
}
function avg_ls_get_image(result)
{
if ((result == null) || (result.length < 1))
return null;
var strResult = new String(result);
var parts = strResult.split("::");
if (parts.length < 3)
return;
var nSeverity = parseInt(parts[0]);
var image = null;
switch(nSeverity)
{
case 0:
if (showCleanVerdicts)
image = images[nSeverity];
break;
case 1:
if (showLowRiskVerdicts)
image = images[nSeverity];
break;
case 2:
if (showMedRiskVerdicts)
image = images[nSeverity];
break;
case 3:
image = images[nSeverity];
break;
default:
image = "linkscanner://unknown12.gif";
break;
}
return image;
}
// do the url check
function avg_ls_check_url(doc, element, href)
{
if (avg_ls_has_image(element))
return;
var result = avg_ls_call_func(doc, "MalsiteCheck", href);
if (result == null)
return;
var parts = result.split("::");
if (parts.length < 3)
return;
var nSeverity = parts[0];
var riskCategory = parts[1];
var riskName = parts[2];
if ( nSeverity == 0 )
{ // safe shortened urls will get checked at mouse over time
if (avg_ls_filter_url(href, shortened_urls))
{
// add onmouseover for anchors with shortened url
avg_ls_add_event(element, "mouseover", avg_ls_mouse_over);
return;
}
}
// mark as processed
element.setAttribute("avglschecked", "1");
// get the image from the result
var image = avg_ls_get_image(result);
if (image == null)
return;
var bgColor = background_colors[nSeverity];
var borderColor = border_colors[nSeverity];
// build the inline html
var html = "";
html += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>";
html += "<img src=linkscanner://LS_Logo_Results.gif/>
";
html += riskCategory + "
";
html += riskName + "
</div>";
avg_ls_add_image(doc, element, image, html);
}
function avg_ls_add_event(obj, name, func)
{
if (obj.addEventListener)
{
obj.addEventListener(name, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_remove_event(obj, name, func)
{
if (obj.removeEventListener)
{
obj.removeEventListener(name, func, false);
return true;
}
else if (obj.detachEvent)
{
return obj.detachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_mouse_over(e)
{
if (e && e.srcElement && e.srcElement.href)
{
var element = e.srcElement;
if (element.tagName == "A")
{
// check if it has an image already
if (avg_ls_has_image(element))
{
return;
}
// add the image, returns the anchor not the image
avg_ls_add_image(document, element, "linkscanner://clock12.png");
// do the check and update in the background
setTimeout(function() {avg_ls_check_and_update(document, element);}, 1);
}
}
}
function avg_ls_get_inline_image(element)
{
var nextElem = null;
if ((element == null) || (element.firstChild == null))
return nextElem;
nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return nextElem;
nextElem = nextElem.nextSibling;
}
return null;
}
function avg_ls_inline_hide_verdict(anchor)
{
var image = avg_ls_get_inline_image(anchor);
if ( image )
{
image.style.visibility = "hidden";
}
}
function avg_ls_check_and_update(doc, element)
{
var result = avg_ls_call_func(doc, "GetFinalUrl", element.href);
if (result)
{
var result2 = avg_ls_call_func(doc, "MalsiteCheck", result);
if (result2 == null)
return;
// remove the mouseover for this element, no need to fire again
avg_ls_remove_event(element, "mouseover", avg_ls_mouse_over);
// get the image from the result
var image = avg_ls_get_image(result2);
if (image == null)
avg_ls_inline_hide_verdict(element);
else
{
var img_elem = avg_ls_get_inline_image(element);
if (img_elem)
{
img_elem.src = image;
}
}
}
}
// function to find a url in a filter list
function avg_ls_filter_url(url, filter)
{
var strUrl = new String(url);
var parts = strUrl.split("/");
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < filter.length; i++)
{
if (domain.indexOf(filter[i]) != -1)
{
return true;
}
}
return false;
}
function avg_ls_init_ratings(doc)
{
// get configuration for verdict displays
var result = avg_ls_call_func(doc, "GetRatingsConfig");
var strResult = new String(result);
var parts = strResult.split("::");
if (parts != null && parts.length >= 4)
{
showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;
showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;
showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;
}
// setup for displaying the inline popup
if ( !doc.getElementById("avg_ls_inline_popup") )
{
var box = doc.createElement("DIV");
doc.body.appendChild(box);
box.id = "avg_ls_inline_popup";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
}
}
avg_ls_add_event(window, "load", avg_ls_onload);
</script><script type="text/javascript">
/*
--------------------------------------------------------------------------
avg linkscanner inline verdict info popup
--------------------------------------------------------------------------
*/
// write verdict info and display the inline popup
function avg_ls_showinline(imageElem, msg)
{
//set verdict info
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.innerHTML = msg;
flyover.style.width = "auto"; //reset width
flyover.style.position = "absolute";
avg_ls_positioninline(imageElem);
}
function avg_ls_positioninline(imageElem)
{
var flyover = document.getElementById('avg_ls_inline_popup');
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
var scrollXWidth = 19; // approx
// Must know if there is a horizontal scroll bar for Firefox
// for proper flyover positioning near bottom edge
var scrollBarX = false; //default for Microsoft IE
var scrollYWidth = 18; //normally 17 (+1 top border)
if (window.innerHeight)
{ // not MSIE
try
{
scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;
scrollBarX = (document.documentElement.clientWidth < document.documentElement.scrollWidth);
}
catch(err){}
}
// get window sizes
if (window.innerHeight == undefined) // Microsoft IE
{
var windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;
var windowY = document.documentElement.clientHeight || document.body.clientHeight;
}
else
{
var windowX = window.innerWidth - scrollXWidth;
var windowY = window.innerHeight;
if (scrollBarX)
windowY -= scrollYWidth;
}
// get the flyover dimensions
if (window.getComputedStyle == undefined) // Microsoft IE
{
var flyoverX = parseInt(flyover.offsetWidth);
var flyoverY = parseInt(flyover.offsetHeight);
}
else
{
var style = document.defaultView.getComputedStyle(flyover, null);
var flyoverX = parseInt(style.width);
var flyoverY = parseInt(style.height);
}
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 = offsetLeft(imageElem) + halfX;
var posY = offsetTop(imageElem) + halfY;
var pageOffsetX = 0;
var pageOffsetY = 0;
// normalize pos to 0 -- get amount of scrolling in browser window
var hasParentFrame = false;
if (window.pageXOffset == undefined) // Microsoft IE
{
pageOffsetX = document.documentElement.scrollLeft || document.body.scrollLeft;
pageOffsetY = document.documentElement.scrollTop || document.body.scrollLeft;
var frames = document.frames;
if (frames)
{
for (var i=0; i < frames.length; i++)
{
if (frames[i].document.getElementById(imageElem.id))
{
pageOffsetX = frames[i].document.documentElement.scrollLeft;
pageOffsetY = frames[i].document.documentElement.scrollTop;
hasParentFrame = true;
break;
}
}
}
}
else
{
pageOffsetX = window.pageXOffset;
pageOffsetY = window.pageYOffset;
}
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
offsetY = windowY - flyoverY;
// 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 = paddedOffsetX + "px";
avg_ls_displayinline();
}
function avg_ls_displayinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
// show the flyover
flyover.style.visibility = "visible";
}
function avg_ls_hideinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.visibility = "hidden"; //invisible
flyover.style.left = "-5000px";
}
function offsetTop(element)
{
var offset = 0;
while (element)
{
offset += element.offsetTop;
element = element.offsetParent;
}
return offset;
}
function offsetLeft(element)
{
var offset = 0;
while (element)
{
offset += element.offsetLeft;
element = element.offsetParent;
}
return offset;
}
</script><br />
<img height="300" src="https://mail.google.com/mail/?attid=0.1&disp=emb&view=att&th=12ff472a0e5303cb" width="400" /><br />
<div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"></div><br />
Nel mondo evoluto di oggi, quando acquisto o cambio il posto ai mobili in <a href="http://www.riparacasa.blogspot.com/">casa</a>, mi devo improvvisare falegname, arredatore. Sempre più <a href="mailto:hobbyferramenta@gmail.com">aziende</a> stanno vendendo mobili confezionati.</div><div style="margin-bottom: 0cm;">Queste aziende sono nate, per offrire alle persone, mobili a prezzi concorrenziali.</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><span id="result_box" lang="en"><span class="hps" closure_uid_q1exep="111" title="Fai clic per visualizzare le traduzioni alternative">In the</span> <span class="hps" closure_uid_q1exep="112" title="Fai clic per visualizzare le traduzioni alternative">developed world</span> <span class="hps" closure_uid_q1exep="113" title="Fai clic per visualizzare le traduzioni alternative">today</span><span closure_uid_q1exep="114" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_q1exep="115" title="Fai clic per visualizzare le traduzioni alternative">when I buy</span> <span class="hps" closure_uid_q1exep="116" title="Fai clic per visualizzare le traduzioni alternative">or</span> <span class="hps" closure_uid_q1exep="117" title="Fai clic per visualizzare le traduzioni alternative">rearrange</span> <span class="hps" closure_uid_q1exep="118" title="Fai clic per visualizzare le traduzioni alternative">the furniture</span> <span class="hps" closure_uid_q1exep="119" title="Fai clic per visualizzare le traduzioni alternative">in the <a href="http://www.riparacasa.blogspot.com/">house</a></span><span closure_uid_q1exep="120" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_q1exep="121" title="Fai clic per visualizzare le traduzioni alternative">I</span> <span class="hps" closure_uid_q1exep="122" title="Fai clic per visualizzare le traduzioni alternative">have to</span> <span class="hps" closure_uid_q1exep="123" title="Fai clic per visualizzare le traduzioni alternative">improvise</span> <span class="hps" closure_uid_q1exep="124" title="Fai clic per visualizzare le traduzioni alternative">a carpenter</span><span closure_uid_q1exep="125" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_q1exep="126" title="Fai clic per visualizzare le traduzioni alternative">decorator</span><span closure_uid_q1exep="127" title="Fai clic per visualizzare le traduzioni alternative">.</span> <span class="hps" closure_uid_q1exep="128" title="Fai clic per visualizzare le traduzioni alternative">More and more</span><a href="mailto:hobbyferramenta@gmail.com"> <span class="hps" closure_uid_q1exep="129" title="Fai clic per visualizzare le traduzioni alternative">companies</span></a> <span class="hps" closure_uid_q1exep="130" title="Fai clic per visualizzare le traduzioni alternative">are</span> <span class="hps" closure_uid_q1exep="131" title="Fai clic per visualizzare le traduzioni alternative">selling</span> <span class="hps" closure_uid_q1exep="132" title="Fai clic per visualizzare le traduzioni alternative">furniture</span> <span class="hps" closure_uid_q1exep="133" title="Fai clic per visualizzare le traduzioni alternative">made</span><span closure_uid_q1exep="134" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<span class="hps" closure_uid_q1exep="135" title="Fai clic per visualizzare le traduzioni alternative">These</span> <span class="hps" closure_uid_q1exep="136" title="Fai clic per visualizzare le traduzioni alternative">companies</span> <span class="hps" closure_uid_q1exep="137" title="Fai clic per visualizzare le traduzioni alternative">were created</span> <span class="hps" closure_uid_q1exep="138" title="Fai clic per visualizzare le traduzioni alternative">to</span> <span class="hps" closure_uid_q1exep="139" title="Fai clic per visualizzare le traduzioni alternative">offer</span> <span class="hps" closure_uid_q1exep="140" title="Fai clic per visualizzare le traduzioni alternative">people</span><span closure_uid_q1exep="141" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_q1exep="142" title="Fai clic per visualizzare le traduzioni alternative">furniture</span> <span class="hps" closure_uid_q1exep="143" title="Fai clic per visualizzare le traduzioni alternative">at competitive prices.</span></span></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><span lang="en"><span class="hps" closure_uid_q1exep="143" title="Fai clic per visualizzare le traduzioni alternative">Negli anni, la persona che assemblava, il costo orario incominciava a costare troppo </span></span></div><div style="margin-bottom: 0cm;">e con questo sistema,le aziende hanno eliminato una parte troppo costosa nella </div><div style="margin-bottom: 0cm;">vendita del mobile.</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><span id="result_box" lang="en"><span class="hps" closure_uid_q1exep="172" title="Fai clic per visualizzare le traduzioni alternative">Over the</span> <span class="hps" closure_uid_q1exep="173" title="Fai clic per visualizzare le traduzioni alternative">years</span><span closure_uid_q1exep="174" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_q1exep="175" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_q1exep="176" title="Fai clic per visualizzare le traduzioni alternative">person</span> <span class="hps" closure_uid_q1exep="177" title="Fai clic per visualizzare le traduzioni alternative">who assembles</span><span closure_uid_q1exep="178" title="Fai clic per visualizzare le traduzioni alternative">,</span> the <span class="hps" closure_uid_q1exep="179" title="Fai clic per visualizzare le traduzioni alternative">cost</span> <span class="hps" closure_uid_q1exep="180" title="Fai clic per visualizzare le traduzioni alternative">time</span> <span class="hps" closure_uid_q1exep="181" title="Fai clic per visualizzare le traduzioni alternative">began</span> <span class="hps" closure_uid_q1exep="182" title="Fai clic per visualizzare le traduzioni alternative">to</span> <span class="hps" closure_uid_q1exep="183" title="Fai clic per visualizzare le traduzioni alternative">cost too much</span><br />
<span class="hps" closure_uid_q1exep="184" title="Fai clic per visualizzare le traduzioni alternative">and with this</span> <span class="hps" closure_uid_q1exep="185" title="Fai clic per visualizzare le traduzioni alternative">system</span><span closure_uid_q1exep="186" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_q1exep="187" title="Fai clic per visualizzare le traduzioni alternative">companies</span> <span class="hps" closure_uid_q1exep="188" title="Fai clic per visualizzare le traduzioni alternative">have</span> <span class="hps" closure_uid_q1exep="189" title="Fai clic per visualizzare le traduzioni alternative">eliminated</span> <span class="hps" closure_uid_q1exep="190" title="Fai clic per visualizzare le traduzioni alternative">one</span> <span class="hps" closure_uid_q1exep="191" title="Fai clic per visualizzare le traduzioni alternative">part</span> <span class="hps" closure_uid_q1exep="192" title="Fai clic per visualizzare le traduzioni alternative">too</span> <span class="hps" closure_uid_q1exep="193" title="Fai clic per visualizzare le traduzioni alternative">expensive</span> <span class="hps" closure_uid_q1exep="194" title="Fai clic per visualizzare le traduzioni alternative">in</span><br />
<span class="hps" closure_uid_q1exep="195" title="Fai clic per visualizzare le traduzioni alternative">Sales</span> <span class="hps" closure_uid_q1exep="196" title="Fai clic per visualizzare le traduzioni alternative">of furniture</span><span closure_uid_q1exep="197" title="Fai clic per visualizzare le traduzioni alternative">.</span></span></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><img src="https://mail.google.com/mail/?attid=0.1&disp=emb&view=att&th=12ff472f20f5acdf" /><script type="text/javascript">
// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;
var shortened_urls = new Array("tinyurl.com","3.ly","bit.ly","tiny.cc","short.to","is.gd","tr.im");
var border_colors = new Array( "#00A120;", "#EAA500;", "#F57301;", "#D20003;" );
var background_colors = new Array( "#C3E5CA;", "#FEEFAE;", "#FFD3B0;", "#F5D4C1;" );
var images = new Array ( "linkscanner://safe12.png", "linkscanner://caution12.png", "linkscanner://warning12.png", "linkscanner://blocked12.png" );
var showCleanVerdicts = true;
var showLowRiskVerdicts = true;
var showMedRiskVerdicts = true;
function avg_ls_does_url_contain(url, contain)
{
if ((url == null) || (url.length < 1))
{
return false;
}
var strUrl = new String(url);
// breakup the url to check
var parts = strUrl.split("/");
if (parts.length < 3)
{
return false;
}
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
{
return true;
}
return false;
}
function avg_ls_valid_gmail_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 4))
return false;
var domain= parts[2];
var path = parts[3];
if ((domain.indexOf("mail.google.") != -1) ||
(domain.indexOf("gmail.") != -1))
{
// save the hostname to use getting links
gAvgHostName = "google.com";
return true;
}
return false;
}
function avg_ls_get_parent_div(element)
{
if ((element == null) || (element.parentNode == null))
return null;
while (element != null)
{
if ((element.tagName == "DIV") && element.className &&
(element.className.length > 0))
return element;
element = element.parentNode;
}
// no div
return null;
}
function avg_ls_parse_ads(href)
{
if (!href)
return href;
// check for google ad
var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 0))
return match
}
return href;
}
function avg_ls_get_gmail_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't mark anything but http://
if (element.href.indexOf("mailto") == 0)
continue;
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") &&
((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
)) // right ads
{
// parse for any ads
var newHref = avg_ls_parse_ads(element.href);
// add the image
avg_ls_check_url(doc, element, newHref);
}
}
}
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
}
}
return links;
}
function avg_ls_valid_facebook_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 2))
return false;
var domain= parts[2];
if (domain.indexOf("www.facebook.com") != -1)
{
// save the hostname to use getting links
gAvgHostName = "www.facebook.com";
return true;
}
return false;
}
function avg_ls_get_facebook_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't put verdicts in areas where typing is going on
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") && (parentDiv.className == "Mentions_Input"))
continue;
}
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
avg_ls_check_url(doc, element, element.href);
}
/*///cbk - take it out for now the home page can't access frameElement
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
if (doc.frames[j].frameElement != null )
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
}
avg_ls_get_facebook_links(doc.frames[j].document, processFrames);
}
}
*///cbk
return links;
}
function avg_ls_has_image(element)
{
if ((element == null) || (element.firstChild == null))
return false;
var nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return true;
nextElem = nextElem.nextSibling;
}
return false;
}
function avg_ls_update_image(doc, element, image )
{
if ((doc == null) || (element == null))
return ;
// mark the element as processed
element.setAttribute("avglschecked", "1");
// if no image, nothing to add
if (image == null)
return;
// update the image
if (element && element.firstChild)
{
image_elem = element.firstChild;
element.firstChild.src = image;
}
}
function avg_ls_add_image(doc, element, image, flyover)
{
if ((doc == null) || (element == null))
return;
// if no image, nothing to add
if (image == null)
return;
// create a new image
var img = doc.createElement("img");
img.src = image;
img.border="0";
img.hspace="5";
img.id = "avg_ls_image";
img.setAttribute("title", "");
// append the image to the link
element.appendChild(img);
img = null;
var newImg = element.lastChild;
if (flyover && newImg && newImg.id == "avg_ls_image")
{
newImg.attachEvent("onmouseover", function() {avg_ls_showinline(newImg, flyover)});
newImg.attachEvent("onmouseout", function() {avg_ls_hideinline()});
}
}
var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_gmail_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}
function avg_ls_monitor_facebook(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_facebook_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_facebook(doc, processFrames);}, 1000);
}
function avg_ls_process_links(doc, processFrames)
{
if (avg_ls_valid_gmail_search(doc.location.href))
{
// process the gmail links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_gmail(doc, processFrames);
}
if (avg_ls_valid_facebook_search(doc.location.href))
{
// process the facebook links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_facebook(doc, processFrames);
}
}
function avg_ls_reload(e)
{
avg_ls_process_links(document, true);
}
function avg_ls_onload(e)
{
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
var doc = document;
// set the event handler for the data element to listen for load/reloads
var data_element = doc.getElementById("avglsdata");
if (data_element)
{
// save data element for use in later iframes
gAvgDataElement = data_element;
// rowexit event used to notify javascript of a page data load
avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
avg_ls_add_event(data_element, "rowexit", avg_ls_reload);
// process links for the document
avg_ls_process_links(doc, true);
}
}
function avg_ls_get_anchors(doc)
{
return doc.getElementsByTagName("a");
}
function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
var avg_ls_data = null;
// get the data element
if (gAvgDataElement == null)
{
avg_ls_data = doc.getElementById("avglsdata");
if ((avg_ls_data == null) || (name == null))
{
// data element does not exist
return;
}
gAvgDataElement = avg_ls_data;
}
else
{
avg_ls_data = gAvgDataElement;
}
// for some reason you can't fire and event on an element with no parent node
if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
{
return;
}
// set the attributes
avg_ls_data.setAttribute("function", name);
if (param1)
avg_ls_data.setAttribute("param1", param1);
if (param2)
avg_ls_data.setAttribute("param2", param2);
if (param3)
avg_ls_data.setAttribute("param3", param3);
if (param4)
avg_ls_data.setAttribute("param4", param4);
if (param5)
avg_ls_data.setAttribute("param5", param5);
avg_ls_data.fireEvent("onrowenter");
// get the result
return avg_ls_data.getAttribute("result");
}
function avg_ls_get_image(result)
{
if ((result == null) || (result.length < 1))
return null;
var strResult = new String(result);
var parts = strResult.split("::");
if (parts.length < 3)
return;
var nSeverity = parseInt(parts[0]);
var image = null;
switch(nSeverity)
{
case 0:
if (showCleanVerdicts)
image = images[nSeverity];
break;
case 1:
if (showLowRiskVerdicts)
image = images[nSeverity];
break;
case 2:
if (showMedRiskVerdicts)
image = images[nSeverity];
break;
case 3:
image = images[nSeverity];
break;
default:
image = "linkscanner://unknown12.gif";
break;
}
return image;
}
// do the url check
function avg_ls_check_url(doc, element, href)
{
if (avg_ls_has_image(element))
return;
var result = avg_ls_call_func(doc, "MalsiteCheck", href);
if (result == null)
return;
var parts = result.split("::");
if (parts.length < 3)
return;
var nSeverity = parts[0];
var riskCategory = parts[1];
var riskName = parts[2];
if ( nSeverity == 0 )
{ // safe shortened urls will get checked at mouse over time
if (avg_ls_filter_url(href, shortened_urls))
{
// add onmouseover for anchors with shortened url
avg_ls_add_event(element, "mouseover", avg_ls_mouse_over);
return;
}
}
// mark as processed
element.setAttribute("avglschecked", "1");
// get the image from the result
var image = avg_ls_get_image(result);
if (image == null)
return;
var bgColor = background_colors[nSeverity];
var borderColor = border_colors[nSeverity];
// build the inline html
var html = "";
html += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>";
html += "<img src=linkscanner://LS_Logo_Results.gif/>
";
html += riskCategory + "
";
html += riskName + "
</div>";
avg_ls_add_image(doc, element, image, html);
}
function avg_ls_add_event(obj, name, func)
{
if (obj.addEventListener)
{
obj.addEventListener(name, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_remove_event(obj, name, func)
{
if (obj.removeEventListener)
{
obj.removeEventListener(name, func, false);
return true;
}
else if (obj.detachEvent)
{
return obj.detachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_mouse_over(e)
{
if (e && e.srcElement && e.srcElement.href)
{
var element = e.srcElement;
if (element.tagName == "A")
{
// check if it has an image already
if (avg_ls_has_image(element))
{
return;
}
// add the image, returns the anchor not the image
avg_ls_add_image(document, element, "linkscanner://clock12.png");
// do the check and update in the background
setTimeout(function() {avg_ls_check_and_update(document, element);}, 1);
}
}
}
function avg_ls_get_inline_image(element)
{
var nextElem = null;
if ((element == null) || (element.firstChild == null))
return nextElem;
nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return nextElem;
nextElem = nextElem.nextSibling;
}
return null;
}
function avg_ls_inline_hide_verdict(anchor)
{
var image = avg_ls_get_inline_image(anchor);
if ( image )
{
image.style.visibility = "hidden";
}
}
function avg_ls_check_and_update(doc, element)
{
var result = avg_ls_call_func(doc, "GetFinalUrl", element.href);
if (result)
{
var result2 = avg_ls_call_func(doc, "MalsiteCheck", result);
if (result2 == null)
return;
// remove the mouseover for this element, no need to fire again
avg_ls_remove_event(element, "mouseover", avg_ls_mouse_over);
// get the image from the result
var image = avg_ls_get_image(result2);
if (image == null)
avg_ls_inline_hide_verdict(element);
else
{
var img_elem = avg_ls_get_inline_image(element);
if (img_elem)
{
img_elem.src = image;
}
}
}
}
// function to find a url in a filter list
function avg_ls_filter_url(url, filter)
{
var strUrl = new String(url);
var parts = strUrl.split("/");
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < filter.length; i++)
{
if (domain.indexOf(filter[i]) != -1)
{
return true;
}
}
return false;
}
function avg_ls_init_ratings(doc)
{
// get configuration for verdict displays
var result = avg_ls_call_func(doc, "GetRatingsConfig");
var strResult = new String(result);
var parts = strResult.split("::");
if (parts != null && parts.length >= 4)
{
showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;
showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;
showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;
}
// setup for displaying the inline popup
if ( !doc.getElementById("avg_ls_inline_popup") )
{
var box = doc.createElement("DIV");
doc.body.appendChild(box);
box.id = "avg_ls_inline_popup";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
}
}
avg_ls_add_event(window, "load", avg_ls_onload);
</script><script type="text/javascript">
/*
--------------------------------------------------------------------------
avg linkscanner inline verdict info popup
--------------------------------------------------------------------------
*/
// write verdict info and display the inline popup
function avg_ls_showinline(imageElem, msg)
{
//set verdict info
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.innerHTML = msg;
flyover.style.width = "auto"; //reset width
flyover.style.position = "absolute";
avg_ls_positioninline(imageElem);
}
function avg_ls_positioninline(imageElem)
{
var flyover = document.getElementById('avg_ls_inline_popup');
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
var scrollXWidth = 19; // approx
// Must know if there is a horizontal scroll bar for Firefox
// for proper flyover positioning near bottom edge
var scrollBarX = false; //default for Microsoft IE
var scrollYWidth = 18; //normally 17 (+1 top border)
if (window.innerHeight)
{ // not MSIE
try
{
scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;
scrollBarX = (document.documentElement.clientWidth < document.documentElement.scrollWidth);
}
catch(err){}
}
// get window sizes
if (window.innerHeight == undefined) // Microsoft IE
{
var windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;
var windowY = document.documentElement.clientHeight || document.body.clientHeight;
}
else
{
var windowX = window.innerWidth - scrollXWidth;
var windowY = window.innerHeight;
if (scrollBarX)
windowY -= scrollYWidth;
}
// get the flyover dimensions
if (window.getComputedStyle == undefined) // Microsoft IE
{
var flyoverX = parseInt(flyover.offsetWidth);
var flyoverY = parseInt(flyover.offsetHeight);
}
else
{
var style = document.defaultView.getComputedStyle(flyover, null);
var flyoverX = parseInt(style.width);
var flyoverY = parseInt(style.height);
}
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 = offsetLeft(imageElem) + halfX;
var posY = offsetTop(imageElem) + halfY;
var pageOffsetX = 0;
var pageOffsetY = 0;
// normalize pos to 0 -- get amount of scrolling in browser window
var hasParentFrame = false;
if (window.pageXOffset == undefined) // Microsoft IE
{
pageOffsetX = document.documentElement.scrollLeft || document.body.scrollLeft;
pageOffsetY = document.documentElement.scrollTop || document.body.scrollLeft;
var frames = document.frames;
if (frames)
{
for (var i=0; i < frames.length; i++)
{
if (frames[i].document.getElementById(imageElem.id))
{
pageOffsetX = frames[i].document.documentElement.scrollLeft;
pageOffsetY = frames[i].document.documentElement.scrollTop;
hasParentFrame = true;
break;
}
}
}
}
else
{
pageOffsetX = window.pageXOffset;
pageOffsetY = window.pageYOffset;
}
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
offsetY = windowY - flyoverY;
// 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 = paddedOffsetX + "px";
avg_ls_displayinline();
}
function avg_ls_displayinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
// show the flyover
flyover.style.visibility = "visible";
}
function avg_ls_hideinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.visibility = "hidden"; //invisible
flyover.style.left = "-5000px";
}
function offsetTop(element)
{
var offset = 0;
while (element)
{
offset += element.offsetTop;
element = element.offsetParent;
}
return offset;
}
function offsetLeft(element)
{
var offset = 0;
while (element)
{
offset += element.offsetLeft;
element = element.offsetParent;
}
return offset;
}
</script> </div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"></div></div><div style="margin-bottom: 0cm;"></div><div style="margin-bottom: 0cm;">Passiamo alla parte pratica. </div><div style="margin-bottom: 0cm;">Per unire due panelli in legno, i produttori si sono inventati vari tipi, modelli, forme e</div><div style="margin-bottom: 0cm;">utilizzo di congiunzioni.</div><div style="margin-bottom: 0cm;">Partiamo con l'esempio: unione due mobili.</div><div style="margin-bottom: 0cm;">Prima cosa, unisco la struttura singolarmente senza porte.Affianco uno all'altro mobile, </div><div style="margin-bottom: 0cm;">livellando le strutture.</div><div style="margin-bottom: 0cm;">Praticamente, controllo, che l'altezza fra uno el'altro, sia uguale. Davanti e dietro,</div><div style="margin-bottom: 0cm;">posizionando una livella per capire sè diritti.</div><div style="margin-bottom: 0cm;">A questo punto,valuto sè internamente ha già qualche foro- sfrutto il foro- inserendo a metà</div><div style="margin-bottom: 0cm;">una congiunzione diametro 8 mm., filettato internamente per viti da 6 mm.</div><div style="margin-bottom: 0cm;">Con forza avvito e il mobile è saldamente fissato.</div><div style="margin-bottom: 0cm;">A questo punto posso montare le porte e regolare.</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><span id="result_box" lang="en"><span class="hps" closure_uid_q1exep="635" title="Fai clic per visualizzare le traduzioni alternative">We pass</span> <span class="hps" closure_uid_q1exep="636" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_q1exep="637" title="Fai clic per visualizzare le traduzioni alternative">practical part</span><span closure_uid_q1exep="638" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<span class="hps" closure_uid_q1exep="639" title="Fai clic per visualizzare le traduzioni alternative">To join</span> <span class="hps" closure_uid_q1exep="640" title="Fai clic per visualizzare le traduzioni alternative">two</span> <span class="hps" closure_uid_q1exep="641" title="Fai clic per visualizzare le traduzioni alternative">wooden</span> <span class="hps" closure_uid_q1exep="642" title="Fai clic per visualizzare le traduzioni alternative">panels</span><span closure_uid_q1exep="643" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_q1exep="644" title="Fai clic per visualizzare le traduzioni alternative">manufacturers</span> <span class="hps" closure_uid_q1exep="645" title="Fai clic per visualizzare le traduzioni alternative">have</span> <span class="hps" closure_uid_q1exep="646" title="Fai clic per visualizzare le traduzioni alternative">invented</span> <span class="hps" closure_uid_q1exep="647" title="Fai clic per visualizzare le traduzioni alternative">various</span> <span class="hps" closure_uid_q1exep="648" title="Fai clic per visualizzare le traduzioni alternative">types, models</span><span closure_uid_q1exep="649" title="Fai clic per visualizzare le traduzioni alternative">, shapes</span> <span class="hps" closure_uid_q1exep="650" title="Fai clic per visualizzare le traduzioni alternative">and</span><br />
<span class="hps" closure_uid_q1exep="651" title="Fai clic per visualizzare le traduzioni alternative">use</span> <span class="hps" closure_uid_q1exep="652" title="Fai clic per visualizzare le traduzioni alternative">of</span> <span class="hps" closure_uid_q1exep="653" title="Fai clic per visualizzare le traduzioni alternative">conjunctions</span><span closure_uid_q1exep="654" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<span class="hps" closure_uid_q1exep="655" title="Fai clic per visualizzare le traduzioni alternative">Let's start</span> <span class="hps" closure_uid_q1exep="656" title="Fai clic per visualizzare le traduzioni alternative">with</span> <span class="hps" closure_uid_q1exep="657" title="Fai clic per visualizzare le traduzioni alternative">an example</span><span closure_uid_q1exep="658" title="Fai clic per visualizzare le traduzioni alternative">:</span> <span class="hps" closure_uid_q1exep="659" title="Fai clic per visualizzare le traduzioni alternative">two</span> <span class="hps" closure_uid_q1exep="660" title="Fai clic per visualizzare le traduzioni alternative">union</span> <span class="hps" closure_uid_q1exep="661" title="Fai clic per visualizzare le traduzioni alternative">furniture</span><span closure_uid_q1exep="662" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<span class="hps" closure_uid_q1exep="663" title="Fai clic per visualizzare le traduzioni alternative">First</span><span closure_uid_q1exep="664" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_q1exep="665" title="Fai clic per visualizzare le traduzioni alternative">join</span> <span class="hps" closure_uid_q1exep="666" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_q1exep="667" title="Fai clic per visualizzare le traduzioni alternative">structure</span> <span class="hps" closure_uid_q1exep="668" title="Fai clic per visualizzare le traduzioni alternative">to another</span> <span class="hps" closure_uid_q1exep="669" title="Fai clic per visualizzare le traduzioni alternative">individual</span> <span class="hps" closure_uid_q1exep="670" title="Fai clic per visualizzare le traduzioni alternative">without</span> <span class="hps" closure_uid_q1exep="671" title="Fai clic per visualizzare le traduzioni alternative">porte.Affianco</span> <span class="hps" closure_uid_q1exep="672" title="Fai clic per visualizzare le traduzioni alternative">a</span> <span class="hps" closure_uid_q1exep="673" title="Fai clic per visualizzare le traduzioni alternative">mobile</span><br />
<span class="hps" closure_uid_q1exep="674" title="Fai clic per visualizzare le traduzioni alternative">leveling</span> <span class="hps" closure_uid_q1exep="675" title="Fai clic per visualizzare le traduzioni alternative">the structures</span><span closure_uid_q1exep="676" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<span class="hps" closure_uid_q1exep="677" title="Fai clic per visualizzare le traduzioni alternative">Basically</span><span closure_uid_q1exep="678" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_q1exep="679" title="Fai clic per visualizzare le traduzioni alternative">check</span> <span class="hps" closure_uid_q1exep="680" title="Fai clic per visualizzare le traduzioni alternative">that</span> <span class="hps" closure_uid_q1exep="681" title="Fai clic per visualizzare le traduzioni alternative">the height</span> <span class="hps" closure_uid_q1exep="682" title="Fai clic per visualizzare le traduzioni alternative">between</span> <span class="hps" closure_uid_q1exep="683" title="Fai clic per visualizzare le traduzioni alternative">one</span> <span class="hps" closure_uid_q1exep="684" title="Fai clic per visualizzare le traduzioni alternative">and another</span><span closure_uid_q1exep="685" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_q1exep="686" title="Fai clic per visualizzare le traduzioni alternative">is the same</span><span closure_uid_q1exep="687" title="Fai clic per visualizzare le traduzioni alternative">.</span> <span class="hps" closure_uid_q1exep="688" title="Fai clic per visualizzare le traduzioni alternative">Front</span> <span class="hps" closure_uid_q1exep="689" title="Fai clic per visualizzare le traduzioni alternative">and rear</span><br />
<span class="hps" closure_uid_q1exep="690" title="Fai clic per visualizzare le traduzioni alternative">by placing</span> <span class="hps" closure_uid_q1exep="691" title="Fai clic per visualizzare le traduzioni alternative">a</span> <span class="hps" closure_uid_q1exep="692" title="Fai clic per visualizzare le traduzioni alternative">spirit level</span> <span class="hps" closure_uid_q1exep="693" title="Fai clic per visualizzare le traduzioni alternative">to</span> <span class="hps" closure_uid_q1exep="694" title="Fai clic per visualizzare le traduzioni alternative">determine whether</span> <span class="hps" closure_uid_q1exep="695" title="Fai clic per visualizzare le traduzioni alternative">rights</span><span closure_uid_q1exep="696" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<span class="hps" closure_uid_q1exep="697" title="Fai clic per visualizzare le traduzioni alternative">At this</span> <span class="hps" closure_uid_q1exep="698" title="Fai clic per visualizzare le traduzioni alternative">point,</span> <span class="hps" closure_uid_q1exep="699" title="Fai clic per visualizzare le traduzioni alternative">I assess</span> <span class="hps" closure_uid_q1exep="700" title="Fai clic per visualizzare le traduzioni alternative">themselves</span> <span class="hps" closure_uid_q1exep="701" title="Fai clic per visualizzare le traduzioni alternative">internally</span> <span class="hps" closure_uid_q1exep="702" title="Fai clic per visualizzare le traduzioni alternative">has</span> <span class="hps" closure_uid_q1exep="703" title="Fai clic per visualizzare le traduzioni alternative">some</span> <span class="hps" closure_uid_q1exep="704" title="Fai clic per visualizzare le traduzioni alternative">advantage of the</span> <span class="hps" closure_uid_q1exep="705" title="Fai clic per visualizzare le traduzioni alternative">hole</span><span class="atn" closure_uid_q1exep="706" title="Fai clic per visualizzare le traduzioni alternative">-</span><span closure_uid_q1exep="707" title="Fai clic per visualizzare le traduzioni alternative">hole</span><span class="atn" closure_uid_q1exep="708" title="Fai clic per visualizzare le traduzioni alternative">-</span><span closure_uid_q1exep="709" title="Fai clic per visualizzare le traduzioni alternative">inserting</span> <span class="hps" closure_uid_q1exep="710" title="Fai clic per visualizzare le traduzioni alternative">in</span> <span class="hps" closure_uid_q1exep="711" title="Fai clic per visualizzare le traduzioni alternative">the middle</span><br />
<span class="hps" closure_uid_q1exep="712" title="Fai clic per visualizzare le traduzioni alternative">a</span> <span class="hps" closure_uid_q1exep="713" title="Fai clic per visualizzare le traduzioni alternative">junction</span> <span class="hps" closure_uid_q1exep="714" title="Fai clic per visualizzare le traduzioni alternative">diameter of</span> <span class="hps" closure_uid_q1exep="715" title="Fai clic per visualizzare le traduzioni alternative">8</span> <span class="hps" closure_uid_q1exep="716" title="Fai clic per visualizzare le traduzioni alternative">mm</span><span closure_uid_q1exep="717" title="Fai clic per visualizzare le traduzioni alternative">.</span><span closure_uid_q1exep="718" title="Fai clic per visualizzare le traduzioni alternative">,</span> <span class="hps" closure_uid_q1exep="719" title="Fai clic per visualizzare le traduzioni alternative">internally</span> <span class="hps" closure_uid_q1exep="720" title="Fai clic per visualizzare le traduzioni alternative">threaded</span> <span class="hps" closure_uid_q1exep="721" title="Fai clic per visualizzare le traduzioni alternative">screw</span> <span class="hps" closure_uid_q1exep="722" title="Fai clic per visualizzare le traduzioni alternative">6 mm</span><span closure_uid_q1exep="723" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<span class="hps" closure_uid_q1exep="724" title="Fai clic per visualizzare le traduzioni alternative">With</span> <span class="hps" closure_uid_q1exep="725" title="Fai clic per visualizzare le traduzioni alternative">strength</span> <span class="hps" closure_uid_q1exep="726" title="Fai clic per visualizzare le traduzioni alternative">and the cabinet</span> <span class="hps" closure_uid_q1exep="727" title="Fai clic per visualizzare le traduzioni alternative">is</span> <span class="hps" closure_uid_q1exep="728" title="Fai clic per visualizzare le traduzioni alternative">screwed</span> <span class="hps" closure_uid_q1exep="729" title="Fai clic per visualizzare le traduzioni alternative">securely in place</span><span closure_uid_q1exep="730" title="Fai clic per visualizzare le traduzioni alternative">.</span><br />
<span class="hps" closure_uid_q1exep="731" title="Fai clic per visualizzare le traduzioni alternative">At this</span> <span class="hps" closure_uid_q1exep="732" title="Fai clic per visualizzare le traduzioni alternative">point</span> <span class="hps" closure_uid_q1exep="733" title="Fai clic per visualizzare le traduzioni alternative">I can</span> <span class="hps" closure_uid_q1exep="734" title="Fai clic per visualizzare le traduzioni alternative">mount</span> <span class="hps" closure_uid_q1exep="735" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_q1exep="736" title="Fai clic per visualizzare le traduzioni alternative">doors</span> <span class="hps" closure_uid_q1exep="737" title="Fai clic per visualizzare le traduzioni alternative">and</span> <span class="hps" closure_uid_q1exep="738" title="Fai clic per visualizzare le traduzioni alternative">adjust</span><span closure_uid_q1exep="739" title="Fai clic per visualizzare le traduzioni alternative">.</span></span></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><span lang="en"><span closure_uid_q1exep="739" title="Fai clic per visualizzare le traduzioni alternative"><script type="text/javascript">
// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;
var shortened_urls = new Array("tinyurl.com","3.ly","bit.ly","tiny.cc","short.to","is.gd","tr.im");
var border_colors = new Array( "#00A120;", "#EAA500;", "#F57301;", "#D20003;" );
var background_colors = new Array( "#C3E5CA;", "#FEEFAE;", "#FFD3B0;", "#F5D4C1;" );
var images = new Array ( "linkscanner://safe12.png", "linkscanner://caution12.png", "linkscanner://warning12.png", "linkscanner://blocked12.png" );
var showCleanVerdicts = true;
var showLowRiskVerdicts = true;
var showMedRiskVerdicts = true;
function avg_ls_does_url_contain(url, contain)
{
if ((url == null) || (url.length < 1))
{
return false;
}
var strUrl = new String(url);
// breakup the url to check
var parts = strUrl.split("/");
if (parts.length < 3)
{
return false;
}
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
{
return true;
}
return false;
}
function avg_ls_valid_gmail_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 4))
return false;
var domain= parts[2];
var path = parts[3];
if ((domain.indexOf("mail.google.") != -1) ||
(domain.indexOf("gmail.") != -1))
{
// save the hostname to use getting links
gAvgHostName = "google.com";
return true;
}
return false;
}
function avg_ls_get_parent_div(element)
{
if ((element == null) || (element.parentNode == null))
return null;
while (element != null)
{
if ((element.tagName == "DIV") && element.className &&
(element.className.length > 0))
return element;
element = element.parentNode;
}
// no div
return null;
}
function avg_ls_parse_ads(href)
{
if (!href)
return href;
// check for google ad
var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 0))
return match
}
return href;
}
function avg_ls_get_gmail_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't mark anything but http://
if (element.href.indexOf("mailto") == 0)
continue;
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") &&
((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
)) // right ads
{
// parse for any ads
var newHref = avg_ls_parse_ads(element.href);
// add the image
avg_ls_check_url(doc, element, newHref);
}
}
}
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
}
}
return links;
}
function avg_ls_valid_facebook_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 2))
return false;
var domain= parts[2];
if (domain.indexOf("www.facebook.com") != -1)
{
// save the hostname to use getting links
gAvgHostName = "www.facebook.com";
return true;
}
return false;
}
function avg_ls_get_facebook_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't put verdicts in areas where typing is going on
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") && (parentDiv.className == "Mentions_Input"))
continue;
}
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
avg_ls_check_url(doc, element, element.href);
}
/*///cbk - take it out for now the home page can't access frameElement
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
if (doc.frames[j].frameElement != null )
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
}
avg_ls_get_facebook_links(doc.frames[j].document, processFrames);
}
}
*///cbk
return links;
}
function avg_ls_has_image(element)
{
if ((element == null) || (element.firstChild == null))
return false;
var nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return true;
nextElem = nextElem.nextSibling;
}
return false;
}
function avg_ls_update_image(doc, element, image )
{
if ((doc == null) || (element == null))
return ;
// mark the element as processed
element.setAttribute("avglschecked", "1");
// if no image, nothing to add
if (image == null)
return;
// update the image
if (element && element.firstChild)
{
image_elem = element.firstChild;
element.firstChild.src = image;
}
}
function avg_ls_add_image(doc, element, image, flyover)
{
if ((doc == null) || (element == null))
return;
// if no image, nothing to add
if (image == null)
return;
// create a new image
var img = doc.createElement("img");
img.src = image;
img.border="0";
img.hspace="5";
img.id = "avg_ls_image";
img.setAttribute("title", "");
// append the image to the link
element.appendChild(img);
img = null;
var newImg = element.lastChild;
if (flyover && newImg && newImg.id == "avg_ls_image")
{
newImg.attachEvent("onmouseover", function() {avg_ls_showinline(newImg, flyover)});
newImg.attachEvent("onmouseout", function() {avg_ls_hideinline()});
}
}
var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_gmail_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}
function avg_ls_monitor_facebook(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_facebook_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_facebook(doc, processFrames);}, 1000);
}
function avg_ls_process_links(doc, processFrames)
{
if (avg_ls_valid_gmail_search(doc.location.href))
{
// process the gmail links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_gmail(doc, processFrames);
}
if (avg_ls_valid_facebook_search(doc.location.href))
{
// process the facebook links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_facebook(doc, processFrames);
}
}
function avg_ls_reload(e)
{
avg_ls_process_links(document, true);
}
function avg_ls_onload(e)
{
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
var doc = document;
// set the event handler for the data element to listen for load/reloads
var data_element = doc.getElementById("avglsdata");
if (data_element)
{
// save data element for use in later iframes
gAvgDataElement = data_element;
// rowexit event used to notify javascript of a page data load
avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
avg_ls_add_event(data_element, "rowexit", avg_ls_reload);
// process links for the document
avg_ls_process_links(doc, true);
}
}
function avg_ls_get_anchors(doc)
{
return doc.getElementsByTagName("a");
}
function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
var avg_ls_data = null;
// get the data element
if (gAvgDataElement == null)
{
avg_ls_data = doc.getElementById("avglsdata");
if ((avg_ls_data == null) || (name == null))
{
// data element does not exist
return;
}
gAvgDataElement = avg_ls_data;
}
else
{
avg_ls_data = gAvgDataElement;
}
// for some reason you can't fire and event on an element with no parent node
if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
{
return;
}
// set the attributes
avg_ls_data.setAttribute("function", name);
if (param1)
avg_ls_data.setAttribute("param1", param1);
if (param2)
avg_ls_data.setAttribute("param2", param2);
if (param3)
avg_ls_data.setAttribute("param3", param3);
if (param4)
avg_ls_data.setAttribute("param4", param4);
if (param5)
avg_ls_data.setAttribute("param5", param5);
avg_ls_data.fireEvent("onrowenter");
// get the result
return avg_ls_data.getAttribute("result");
}
function avg_ls_get_image(result)
{
if ((result == null) || (result.length < 1))
return null;
var strResult = new String(result);
var parts = strResult.split("::");
if (parts.length < 3)
return;
var nSeverity = parseInt(parts[0]);
var image = null;
switch(nSeverity)
{
case 0:
if (showCleanVerdicts)
image = images[nSeverity];
break;
case 1:
if (showLowRiskVerdicts)
image = images[nSeverity];
break;
case 2:
if (showMedRiskVerdicts)
image = images[nSeverity];
break;
case 3:
image = images[nSeverity];
break;
default:
image = "linkscanner://unknown12.gif";
break;
}
return image;
}
// do the url check
function avg_ls_check_url(doc, element, href)
{
if (avg_ls_has_image(element))
return;
var result = avg_ls_call_func(doc, "MalsiteCheck", href);
if (result == null)
return;
var parts = result.split("::");
if (parts.length < 3)
return;
var nSeverity = parts[0];
var riskCategory = parts[1];
var riskName = parts[2];
if ( nSeverity == 0 )
{ // safe shortened urls will get checked at mouse over time
if (avg_ls_filter_url(href, shortened_urls))
{
// add onmouseover for anchors with shortened url
avg_ls_add_event(element, "mouseover", avg_ls_mouse_over);
return;
}
}
// mark as processed
element.setAttribute("avglschecked", "1");
// get the image from the result
var image = avg_ls_get_image(result);
if (image == null)
return;
var bgColor = background_colors[nSeverity];
var borderColor = border_colors[nSeverity];
// build the inline html
var html = "";
html += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>";
html += "<img src=linkscanner://LS_Logo_Results.gif/>
";
html += riskCategory + "
";
html += riskName + "
</div>";
avg_ls_add_image(doc, element, image, html);
}
function avg_ls_add_event(obj, name, func)
{
if (obj.addEventListener)
{
obj.addEventListener(name, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_remove_event(obj, name, func)
{
if (obj.removeEventListener)
{
obj.removeEventListener(name, func, false);
return true;
}
else if (obj.detachEvent)
{
return obj.detachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_mouse_over(e)
{
if (e && e.srcElement && e.srcElement.href)
{
var element = e.srcElement;
if (element.tagName == "A")
{
// check if it has an image already
if (avg_ls_has_image(element))
{
return;
}
// add the image, returns the anchor not the image
avg_ls_add_image(document, element, "linkscanner://clock12.png");
// do the check and update in the background
setTimeout(function() {avg_ls_check_and_update(document, element);}, 1);
}
}
}
function avg_ls_get_inline_image(element)
{
var nextElem = null;
if ((element == null) || (element.firstChild == null))
return nextElem;
nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return nextElem;
nextElem = nextElem.nextSibling;
}
return null;
}
function avg_ls_inline_hide_verdict(anchor)
{
var image = avg_ls_get_inline_image(anchor);
if ( image )
{
image.style.visibility = "hidden";
}
}
function avg_ls_check_and_update(doc, element)
{
var result = avg_ls_call_func(doc, "GetFinalUrl", element.href);
if (result)
{
var result2 = avg_ls_call_func(doc, "MalsiteCheck", result);
if (result2 == null)
return;
// remove the mouseover for this element, no need to fire again
avg_ls_remove_event(element, "mouseover", avg_ls_mouse_over);
// get the image from the result
var image = avg_ls_get_image(result2);
if (image == null)
avg_ls_inline_hide_verdict(element);
else
{
var img_elem = avg_ls_get_inline_image(element);
if (img_elem)
{
img_elem.src = image;
}
}
}
}
// function to find a url in a filter list
function avg_ls_filter_url(url, filter)
{
var strUrl = new String(url);
var parts = strUrl.split("/");
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < filter.length; i++)
{
if (domain.indexOf(filter[i]) != -1)
{
return true;
}
}
return false;
}
function avg_ls_init_ratings(doc)
{
// get configuration for verdict displays
var result = avg_ls_call_func(doc, "GetRatingsConfig");
var strResult = new String(result);
var parts = strResult.split("::");
if (parts != null && parts.length >= 4)
{
showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;
showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;
showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;
}
// setup for displaying the inline popup
if ( !doc.getElementById("avg_ls_inline_popup") )
{
var box = doc.createElement("DIV");
doc.body.appendChild(box);
box.id = "avg_ls_inline_popup";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
}
}
avg_ls_add_event(window, "load", avg_ls_onload);
</script><script type="text/javascript">
/*
--------------------------------------------------------------------------
avg linkscanner inline verdict info popup
--------------------------------------------------------------------------
*/
// write verdict info and display the inline popup
function avg_ls_showinline(imageElem, msg)
{
//set verdict info
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.innerHTML = msg;
flyover.style.width = "auto"; //reset width
flyover.style.position = "absolute";
avg_ls_positioninline(imageElem);
}
function avg_ls_positioninline(imageElem)
{
var flyover = document.getElementById('avg_ls_inline_popup');
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
var scrollXWidth = 19; // approx
// Must know if there is a horizontal scroll bar for Firefox
// for proper flyover positioning near bottom edge
var scrollBarX = false; //default for Microsoft IE
var scrollYWidth = 18; //normally 17 (+1 top border)
if (window.innerHeight)
{ // not MSIE
try
{
scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;
scrollBarX = (document.documentElement.clientWidth < document.documentElement.scrollWidth);
}
catch(err){}
}
// get window sizes
if (window.innerHeight == undefined) // Microsoft IE
{
var windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;
var windowY = document.documentElement.clientHeight || document.body.clientHeight;
}
else
{
var windowX = window.innerWidth - scrollXWidth;
var windowY = window.innerHeight;
if (scrollBarX)
windowY -= scrollYWidth;
}
// get the flyover dimensions
if (window.getComputedStyle == undefined) // Microsoft IE
{
var flyoverX = parseInt(flyover.offsetWidth);
var flyoverY = parseInt(flyover.offsetHeight);
}
else
{
var style = document.defaultView.getComputedStyle(flyover, null);
var flyoverX = parseInt(style.width);
var flyoverY = parseInt(style.height);
}
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 = offsetLeft(imageElem) + halfX;
var posY = offsetTop(imageElem) + halfY;
var pageOffsetX = 0;
var pageOffsetY = 0;
// normalize pos to 0 -- get amount of scrolling in browser window
var hasParentFrame = false;
if (window.pageXOffset == undefined) // Microsoft IE
{
pageOffsetX = document.documentElement.scrollLeft || document.body.scrollLeft;
pageOffsetY = document.documentElement.scrollTop || document.body.scrollLeft;
var frames = document.frames;
if (frames)
{
for (var i=0; i < frames.length; i++)
{
if (frames[i].document.getElementById(imageElem.id))
{
pageOffsetX = frames[i].document.documentElement.scrollLeft;
pageOffsetY = frames[i].document.documentElement.scrollTop;
hasParentFrame = true;
break;
}
}
}
}
else
{
pageOffsetX = window.pageXOffset;
pageOffsetY = window.pageYOffset;
}
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
offsetY = windowY - flyoverY;
// 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 = paddedOffsetX + "px";
avg_ls_displayinline();
}
function avg_ls_displayinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
// show the flyover
flyover.style.visibility = "visible";
}
function avg_ls_hideinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.visibility = "hidden"; //invisible
flyover.style.left = "-5000px";
}
function offsetTop(element)
{
var offset = 0;
while (element)
{
offset += element.offsetTop;
element = element.offsetParent;
}
return offset;
}
function offsetLeft(element)
{
var offset = 0;
while (element)
{
offset += element.offsetLeft;
element = element.offsetParent;
}
return offset;
}
</script> <img src="https://mail.google.com/mail/?attid=0.1&disp=emb&view=att&th=12ff4735c1b0103e" /></span></span><br />
<div style="margin-bottom: 0cm;"><br />
</div></div><div style="margin-bottom: 0cm;"><div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"></div></div><div style="margin-bottom: 0cm;"></div><div style="margin-bottom: 0cm;"> <br />
<div style="margin-bottom: 0cm;">Altra possibilita di giunzione</div><div style="margin-bottom: 0cm;">Nel video c'è un tirante, che viene utilizzato per l'unione di due panelli. </div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;">Materiale usato </div><div style="margin-bottom: 0cm;">-tassello filettato diametro 6 mm -------- tirante </div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;">Su un panello fissare tassello e tirante</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;">-bussola ecentrica diametro 14 mm</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;">Su opposto panello inserire bussola</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;">Unire le due parti inserendo il tirante nella bussola e stringere girando la bussola.<br />
</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><img height="300" src="https://mail.google.com/mail/?attid=0.1&disp=emb&view=att&th=12ff473ba2b143f9" width="400" /><script type="text/javascript">
/////////// SEARCH MONITOR ///////////
setTimeout(function(){searchshield.init(document);},1000);
//////////////// SEARCH ////////////////
// 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.allowedSites = [];
searchshield.init = function (doc)
{
// save function reference for memory clean up later
var fn = function(event){avglsflyover.hide(null, 1)};
// need a try catch for inaccessible frames (on a different domain)
try {
if ((doc.location.href == 'about:blank') || (doc.location.href == 'about:Tabs'))
return;
// IE specific check
searchshield.quirksMode = (doc.compatMode == 'BackCompat');
if ((self === top) && (self.document === doc))
{
//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);
}
}
catch(err){}
return;
};
// search monitors and processors
searchshield.avgPageMonitor = {
start: function(doc){
searchshield.avgSearchMonitor.stop();
searchshield.avgPageMonitor.stop();
searchshield.avgPageMonitor.process(doc);
if (!searchshield.avgSearchMonitor.timeoutID)
searchshield.avgPageMonitor.timeoutID = window.setTimeout(function(){searchshield.avgPageMonitor.start(doc)}, 1000);
},
process: function(doc){
searchshield.avgProcessSearch(doc);
},
stop: function(){
if (searchshield.avgPageMonitor.timeoutID)
{
window.clearTimeout(searchshield.avgPageMonitor.timeoutID);
delete searchshield.avgPageMonitor.timeoutID;
}
}
};
searchshield.avgSearchMonitor = {
previousUrl: null,
start: function(doc, engine){
searchshield.avgPageMonitor.stop();
searchshield.avgSearchMonitor.stop();
searchshield.avgSearchMonitor.process(doc, engine);
if (!searchshield.avgPageMonitor.timeoutID)
searchshield.avgSearchMonitor.timeoutID = window.setTimeout(function(){searchshield.avgSearchMonitor.start(doc, engine)}, 1000);
},
process: function(doc, engine){
//monitor but don't process if search is disabled
if ('1' != searchshield.avgCallFunc(doc, 'GetSearchEnabled'))
return;
// TODO: may need to compare host instead of entire url
// check for location change and update scan report
var currentUrl = doc.location.href;
if (searchshield.avgSearchMonitor.previousUrl != currentUrl)
{
//report scan result
searchshield.avgSearchMonitor.previousUrl = currentUrl;
avgreport.scanResult(doc, currentUrl);
}
engine.search.links = [];
var links = searchshield.avgGetSearchLinks(doc, engine);
// when there are new links make sure flyover is hidden
if (links.length > 0)
avglsflyover.hide(null, 1);
var phishLinks = [];
for (var i=0; i < links.length; i++)
{
var isPhishing = searchshield.avglsCheckandUpdate(links[i], engine);
if (!!isPhishing)
{
phishLinks.push(links[i]);
}
}
if (phishLinks.length > 0)
{
var prev = '1';
if ( engine.type == 'inline' )
prev = '0';
searchshield.avgCallFunc(doc, 'GetPhishingResults', prev);
}
else if (links.length > 0 && engine.type != 'inline')
{
searchshield.avgCallFunc(doc, 'FinalScanComplete');
}
},
stop: function(){
if (searchshield.avgSearchMonitor.timeoutID)
{
window.clearTimeout(searchshield.avgSearchMonitor.timeoutID);
delete searchshield.avgSearchMonitor.timeoutID;
}
}
};
searchshield.avgProcessSearch = function (doc)
{
// doc may be about:Tabs or about:Blank
if (!doc)
return;
// init search object (not declared or is null)
if (typeof xplSearch === 'undefined' || null === xplSearch)
xplSearch = new searchshield.Search();
xplSearch.doc = doc;
xplSearch.href = xplSearch.doc.location.href;
xplSearch.uri = searchshield.parseLink(xplSearch.href);
if (!searchshield.clockUrl)
searchshield.clockUrl = searchshield.avgCallFunc(doc, 'GetIconUrl', '0');
xplSearch.clockUrl = searchshield.clockUrl
if (!xplSearch.engines)
{
var aEng = xplSearch.getSearchNames();
var aEngLen = aEng.length;
for (var i=0; i < aEngLen; i++)
{
xplSearch.addEngine(new searchshield[aEng[i]+'SearchEngine'](xplSearch));
}
}
if (!xplSearch.engine)
{
var engLen = xplSearch.engines.length;
for (var i = 0; i < engLen; i++)
{
if (xplSearch.engines[i].validSearch())
{
xplSearch.engine = xplSearch.engines[i];
break;
}
}
}
if (!xplSearch.engine)
return;
// set verdict display config
xplSearch.engine.setRatingsConfig(doc);
// init the alert popup
searchshield.initPopupAlert(doc);
// start search monitor
searchshield.avgSearchMonitor.start(doc, xplSearch.engine);
// 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)
{
if (!engine)
{
// restart page monitor
searchshield.avgPageMonitor.start(doc);
return;
}
var alltags = doc.getElementsByTagName('*');
for (var i = 0; i < alltags.length; i++)
{
if (alltags[i].getAttribute('avglschecked'))
continue;
// ignore linked resources
if ((alltags[i].tagName) && (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 (alltags[i].id && (alltags[i].id.indexOf("XPLSS_") != -1))
continue;
// ignore flyover anchors
if (alltags[i].href && (alltags[i].href.indexOf("linkscanner:") == 0 || alltags[i].href.indexOf("avgthreatlabs.com") != -1))
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 && engine.processFrames)
{
for (var j = 0; j < 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 && (attr.indexOf("editable") != -1))
continue;
if (frameDoc)
searchshield.avgGetSearchLinks(frameDoc, engine);
}
}
return engine.search.links;
};
searchshield.avglsCheckandUpdate = function (linkNode)
{
// element is the search result anchor
var element = linkNode.element;
var href = linkNode.href;
if (!xplSearch)
return;
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 < 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 && nextElem.id && (nextElem.id.indexOf("XPLSS_") != -1))
break;
nextElem = nextElem.nextSibling;
}
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 && avglschecked != 1)
{
var sPos = avglschecked.indexOf("S");
var hash = (sPos > -1) ? avglschecked.substring(0, sPos) : null;
var split = (sPos > -1) ? avglschecked.substring(sPos+1) : null;
if (hash && split && 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 >= searchshield.SCORE_SS_CAUTION) && (score <= 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 < 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 && obj.img.id)
{
var pos = !!obj.img.id ? obj.img.id.indexOf('U') + 1 : -1;
obj.score = (pos < 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 < 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 < links.length; i++)
{
if ((links[i] != null) && (links[i].hash != null) &&
(links[i].hash == hash) && (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 < arguments.length; i++)
avg_ls_data.setAttribute("param"+(++pcnt), 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) &&
(node.tagName != null) &&
(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 < 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 < maxLoop; maxLoop--)
{
if ((pNode[attrName]) &&
(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)
{
// if attrName is not provided just return TRUE
var nodeHasAttribute = !!attrName ? !!node[attrName] : true;
if ((node.tagName == tagName) && (nodeHasAttribute))
return node;
node = node.parentNode;
}
// no div
return null;
};
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 && ((doc.location.href == "about:blank") || (doc.location.href == "about:Tabs")))
return doc;
// Check if already a top level document
for (var i = 0; i < 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 < gBrowser.browsers.length; j++)
{
// get all docs for each browser
documents = searchshield.getDocuments(gBrowser.browsers[j].contentWindow, new Array());
for (var k = 0; k < 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('(<[^>]+>)','g');
var strStr = new String(str);
if (!!strStr)
return strStr.replace(re, '');
else
return str;
};
// Browser functions
searchshield.containedIn = function (container, element)
{
while (element != null)
{
if (container == element)
{
return true;
}
element = element.parentNode;
}
return false;
};
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 &&
siblingElement.firstChild &&
siblingElement.id &&
siblingElement.id.indexOf("XPLSS_") != -1)
{
nextImg = siblingElement.firstChild;
nextImgRect = nextImg.getBoundingClientRect();
}
else
{
return elementRect;
}
if ((nextImgRect.top >= elementRect.bottom) &&
(nextImgRect.left <= 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 && 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 < 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 && 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 < document.documentElement.scrollWidth);
}
catch(err){}
if (scrollBarX && !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 < 1))
return false;
// breakup the url to check
var parts = url.split('/');
if (parts.length < 3)
return false;
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
return true;
return false;
};
searchshield.FilterUrl = function (url, filter)
{
if (!url || (url.length < 1))
return false;
if (!filter || !(filter instanceof Array))
return false;
var parts = url.split('/');
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < 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) && (parts.length >= 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 < 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&q=javascript&btnG=Search&aq=f&aqi=g10&aql=&oq=&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 = [];
uri.query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,
function ($0, $1, $2) {
if ($1) uri.qsArray[$1] = $2;
}
);
}
//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 < 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;
};
// 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 < array.length; i++)
{
var k = caseSensitive ? key.valueOf() : key.valueOf().toLowerCase();
var a = caseSensitive ? array[i] : array[i].toLowerCase();
if(exactMatch && k === a)
return true;
else if (!exactMatch && (-1 !== k.indexOf(a)))
return true;
}
}
else if (key instanceof Array)
{
for (var i=0; i < array.length; i++)
for (var j=0; j < key.length; j++)
{
var k = caseSensitive ? key[j] : key[j].toLowerCase();
var a = caseSensitive ? array[i] : array[i].toLowerCase();
if (exactMatch && k === a)
return true;
else if (!exactMatch && (-1 !== k.indexOf(a)))
return true;
}
}
return false;
};
// 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'
];
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 < 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 (0 == searchshield.avgCallFunc(doc, 'GetSearchEnabled'))
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 < 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 < 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 < 1 either an error or disabled
//var sdkInit = 0;
//try {
// sdkInit = xpl_sdk.SXPL_InitSearch(this.href);
//}
//catch(e){}
//if (sdkInit < 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 < alltags.length; i++)
{
// ignore verdicts
if (alltags[i].id && (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: {
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"
];
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) &&
(insertNode.tagName != null) &&
(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 (!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) &&
(insertNode.id != null) &&
(insertNode.id.indexOf("XPLSS_") > -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 && 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) && (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";
}
// 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 && this.processFrames)
{
for (var i=0; i < 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 < 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->anchor->containerNodes...
while (cN && 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 && this.search.doc.documentMode < 8)) ?
cN.offsetHeight :
cN.clientHeight;
scrl = cN.scrollHeight - clientHeight;
break;
}
cN = cN.parentNode;
}
if (0 < scrl)
{
var eH = (element.height - scrl)/element.height;
if (reduceBy > 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 && (alt_image.length > 0) && 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) &&
(alt_image.length > 0) &&
(!this.omitAltImage) &&
(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 && 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) && (frameHeight < 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) &&
(element.tagName.charAt(0) != "H") &&
(element.tagName.charAt(0) != "D") &&
(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 < 1))
return null;
for (var i = 0; i < 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 && parts.length >= 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;
// create the popup box
var box = doc.createElement("DIV");
try {
box.setAttribute("id", "XPLSS_InlineFlyover");
box.style.visibility = "hidden";
box.style.left = "-5000px";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
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 < 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 && 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)}, false);
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 < 3)
return;
// check the minimum to display
if ((min_severity != null) && (nSeverity < min_severity))
return;
if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_LOW && !this.showLowRiskVerdicts)
{
if (update)
this.avg_ls_inline_hide_verdict(anchor);
return;
}
if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_MED && !this.showMedRiskVerdicts)
{
if (update)
this.avg_ls_inline_hide_verdict(anchor);
return;
}
if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_NONE && !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 && 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 && anchor.firstChild)
{
var html = '';
var image = '';
if (aRisk != null && 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 && html.length > 0 )
{
imageElem.setAttribute("title", "");
imageElem.attachEvent("onmouseover", function(e){avglsinlineflyover.popup(e, html)});
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) &&
(insertNode.tagName != null) &&
(insertNode.tagName == "SPAN"))
{
insertNode= insertNode.nextSibling;
}
// see if we already have an image anchor
if ((insertNode != null) &&
(insertNode.id != null) &&
(insertNode.id == "avg_ls_anch"))
{
return null;
}
var html = '';
var image = this.inline.clockImage;
if (aRisk != null && 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.border = "none";
img.style.padding = "0 3px";
img.style.margin = "0";
img.style.display = "inline";
if ((html && html.length > 0) || (blUrl != undefined))
{
img.setAttribute("title", "");
img.attachEvent("onmouseover", function(e){avglsinlineflyover.popup(e, html, 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.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;
// Domains valid for google searches, must start with '.'
var valid_domains = new Array(".google.co", ".mozilla.co");
// For Google the host must match:
// .google.com OR
// .google.co.XX where XX is a country code
// .google.XX where XX is a country code
// Where any subdomain can come before the top level domain
var domLen = valid_domains.length;
for (var i = 0; i < domLen; i++)
{
var domainLen = domain.length;
var valid_domain_len = valid_domains[i].length;
var tldPos = domain.indexOf(valid_domains[i]);
if (tldPos > -1)
{
if (domain.charAt(tldPos + valid_domain_len) == 'm')
hostMatch = true;
else if ((domain.charAt(tldPos + valid_domain_len) == '.') && ((domainLen - tldPos) == valid_domain_len+3))
hostMatch = true;
}
else
{
// get the form .google. to check the length of
var dot_pos = valid_domains[i].indexOf(".",1);
var valid_short_name = valid_domains[i].substring(0, dot_pos+1);
tldPos = domain.indexOf(valid_short_name);
if ((tldPos > -1) && ((domainLen - tldPos) == valid_domain_len))
hostMatch = true;
}
if (hostMatch)
{
// replace beginning of domain with www.google since links will refer back to it
if ((i > 0) && (tldPos > -1))
{
var last_dot = domain.indexOf(".",tldPos+1)
if (last_dot > -1)
domain = "www.google" + domain.substring(last_dot);
}
break;
}
}
if (hostMatch)
{
// using ajax engine
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" && 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= "&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 = "&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("&q=http");
if (urlPos != -1)
urlPos += 3; // puts it on the http
else
{
urlPos = href.indexOf("&lp=http");
if (urlPos != -1)
urlPos += 4;
else
{
findStr = "&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("&q=http");
if (urlPos != -1)
urlPos += 3; // puts it on the http
}
}
if (urlPos != -1)
{
outHref = 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("&");
if (ampPos != -1)
outHref = outHref.substring(0, ampPos);
}
if (searchshield.FilterUrl(outHref, this.filter_urls))
return false;
return outHref;
}
}
// recommended link - use following to see one
// http://www.google.cz/search?hl=cs&q=warey&btnG=Hledat&lr=lang_cs
// elem parent class = r
// href must contain - url? and q=http
var parentNode = tag.parentNode;
if (parentNode && (parentNode.className.toLowerCase() == "r"))
{
href = tag.href;
if (href && (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 '&'
var ampPos = outHref.indexOf("&");
if (ampPos != -1)
outHref = outHref.substring(0, ampPos);
return outHref;
}
}
}
}
// no link to self
else if (tag.className && (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") > -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") &&
((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 = "&adurl=http";
urlPos = href.indexOf(findStr);
if (urlPos != -1)
urlPos += 7; // puts it on the http
}
}
if (urlPos != -1)
{
outHref = 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("&");
if (ampPos != -1)
outHref = outHref.substring(0, ampPos);
}
if (searchshield.FilterUrl(outHref, this.filter_urls))
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") &&
(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)) &&
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) &&
(tag.tagName === "A") &&
(!tag.className))
{
var tagParent = tag.parentNode;
// if anchor without className then search parentNodes
if ((tagParent) &&
(tagParent.tagName !== "EM") &&
(searchshield.getParentNodeByClassName("yst-web", tag, 4)))
{
// China Yahoo support
outHref = href;
}
else if ((tagParent) &&
(tagParent.tagName === "H3") &&
(!!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) &&
(tagParent.className !== "c") &&
(tagParent.parentNode.id !== "fpn") &&
(!!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 = "&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 <i>, probably a paypal link, don't include
if (tag.parentNode && (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;
};
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") &&
((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)) &&
(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 = "&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 <i>, probably a paypal link, don't include
if (tag.parentNode && (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;
};
searchshield.AVGYahooSearchEngine.prototype.updateImage = function (hash, search, score, image, alt_image, flyover, click_thru, altClick_thru)
{
// remove style that is set when alt image is applied
this.updateImageStyle = {
verticalAlign: null
};
// don't show verisign icon
if (alt_image && (alt_image.length > 0))
this.omitAltImage = true;
var parent = searchshield.SearchEngine.prototype.updateImage;
return parent.call(this, hash, search, score, image, alt_image, flyover, click_thru, altClick_thru);
};
/////////////// 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") > -1)
{
if (domain.charAt(13) == 'm')
hostMatch = true;
else if ((domain.charAt(13) == '.') && (domain.length == 16))
hostMatch = true;
}
else if (domain.indexOf("search.live.co") > -1)
{
if (domain.charAt(14) == 'm')
hostMatch = true;
else if ((domain.charAt(14) == '.') && (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("&&");
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) &&
(spanElements.length > 0))
{
outHref = spanElements[0].innerHTML;
// replace any nbsp's
outHref = outHref.replace(" ", " ");
// 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) &&
(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 > -1)
{
if ((domainLen - tldPos) == 9)
hostMatch = true;
}
}
if (hostMatch)
{
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 (tag.id.toLowerCase() == "trademarks")
{
// don't link the trademark at the bottom of the page
return false;
}
if ((tag.parentNode) &&
(tag.parentNode.id.toLowerCase() == "sc_stc"))
{ // 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 <= 0))
{
if (tag.parentNode && tag.parentNode.parentNode)
spanElements = tag.parentNode.parentNode.getElementsByTagName("CITE");
}
if ((spanElements != null) && (spanElements.length > 0))
{
outHref = spanElements[0].innerHTML;
if (outHref != null)
{
// replace any nbsp's
outHref = outHref.replace(" ", " ");
// 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"))
{
// 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 < gpChildren.length; i++)
{
if (!!element.href && gpChildren[i].tagName == "A" && 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);
};
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 && 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 && traverseElement.className != "tbody")
{
if (traverseElement.className == "f")
return tag.href;
traverseElement = traverseElement.parentNode;
}
return false;
}
};
searchshield.BaiduSearchEngine.prototype.addImage = function(node, image, hidden)
{
this.addImageStyle = {
position: "relative",
top: "0.05em"
};
var parent = searchshield.SearchEngine.prototype.addImage;
return parent.call(this, node, image, hidden);
};
searchshield.BaiduSearchEngine.prototype.updateImage = function (hash, search, score, image, alt_image, flyover, click_thru, altClick_thru)
{
// remove style that is set when alt image is applied
this.updateImageStyle = {
verticalAlign: null
};
var parent = searchshield.SearchEngine.prototype.updateImage;
return parent.call(this, hash, search, score, image, alt_image, flyover, click_thru, altClick_thru);
};
/////////////// 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) &&
(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("&q=");
var qlen = 3;
if (q == -1)
{
q = tag.href.indexOf("&adurl=");
qlen = 7;
if (q == -1)
return false;
}
// find end of url
var end = tag.href.indexOf("&", q+qlen);
if (end < 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 && (tag.parentNode.tagName == "H3") &&
tag.parentNode.parentNode && (tag.parentNode.parentNode.tagName == "LI") &&
tag.parentNode.parentNode.parentNode && (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" == domain)
{
if ((aol == "aol") &&
(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) && (tag.className.indexOf("slLink") != -1))
{ //parse for embedded href
if (tag.href.indexOf("/aclk?sa=") == -1)
return false;
var adurl = tag.href.indexOf("&adurl=http");
if (adurl != -1)
{
var urlPos = adurl+7; // puts it on the http
var outHref = tag.href.substring(urlPos);
// extract any fragment text, do not unescape
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("&");
if (ampPos != -1)
outHref = outHref.substring(0, ampPos);
}
if (searchshield.FilterUrl(outHref, this.filter_urls))
return false;
return outHref;
}
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 && element.className && 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 < cnLen; i++)
{
if ((cN[i].nodeType == 1) &&
(cN[i].nodeName == 'SPAN') &&
((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) && (tag.className.indexOf("nu") != -1) && (tag.className.indexOf("info") == -1))
{
// exclude green links
if ((tag.firstChild) &&
(tag.firstChild.className) &&
(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 = "&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) && ((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 ---> now http://us.yhs4.search.yahoo.com/yhs/search?fr=altavista&fr=altavista&itag=ody&q=warez&kgs=1&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 ) && ((domain.length - pDest) == 14))
{
hostMatch = true;
}
else
{
// a reference to altavista must be present in yahoo search url
var pRef = (uri.qsArray.fr && uri.qsArray.fr == 'altavista');
pDest = domain.indexOf("search.yahoo.com");
if (pDest != -1 && 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;
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 & 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) && (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.indexOf("yandex.ru") > -1) ||
(domain.indexOf("yandex.com") > -1)) &&
(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) &&
(tag.parentNode.parentNode) &&
(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);
};
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") > -1) &&
((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") &&
((parentNode.className.toLowerCase() == "sklik-url") ||
(parentNode.className.toLowerCase() == "sklik-title")))
{ // locate the real url and unencode it
var urlPos = tag.href.indexOf("&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") &&
((grandParentNode.className.toLowerCase() == "text") || (grandParentNode.className.toLowerCase() == "hlasky otz")))
{ // standard link
return tag.href;
}
else if (greatGrandParentNode && greatGrandParentNode.tagName == "DIV" &&
(greatGrandParentNode.className.toLowerCase() == "hotlinks"))
{ // hint link
return tag.href;
}
}
}
return false;
};
searchshield.SeznamSearchEngine.prototype.updateImage = function (hash, search, score, image, alt_image, flyover, click_thru, altClick_thru)
{
this.elementAttribute = {
width: "18",
height: "18"
};
this.updateImageStyle = {
width: "18px",
height: "18px"
};
var parent = searchshield.SearchEngine.prototype.updateImage;
return parent.call(this, hash, search, score, image, alt_image, flyover, click_thru, altClick_thru);
};
/////////////// 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") > -1) &&
(path.indexOf("results.aspx?") == 0))
{
return true;
}
return false;
};
searchshield.WebhledaniSearchEngine.prototype.includeLink = function(tag)
{
var parentNode = tag.parentNode;
if (searchshield.DoesURLContain(tag.href, this.search.uri.host))
{
if ( tag.href.indexOf("/redir.aspx?") != -1)
{
attrNode = tag.attributes;
if ( attrNode == null )
return false;
var outHref = attrNode.getNamedItem("onmouseover").nodeValue;
if ( outHref == null )
return false;
var findStr = "window.status=";
if (outHref.indexOf(findStr)!= -1)
{
// get text before first semicolon
var semicolon = outHref.indexOf(";");
if (semicolon > -1)
outHref = outHref.substring(findStr.length, semicolon);
// strip quotation marks
outHref = outHref.replace(/['"]/g, "");
var space = outHref.indexOf(" ");
var firstDot = outHref.indexOf(".");
if ((space > -1) && (space < firstDot))
outHref = outHref.substring(space+1);
outHref = searchshield.checkUrl(outHref);
return outHref;
}
}
}
return false;
};
searchshield.WebhledaniSearchEngine.prototype.insertNodes = function(node, doc)
{
var element = node.element;
var score = node.score;
// 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 < cnLen; i++)
{
if (cN[i].nodeType == 1 && cN[i].nodeName == 'SPAN' && cN[i].className == 'sl')
{
if (!this.cssUpdated)
{
this.cssUpdated = true;
// need to add style to make verdicts display inline
var docStyle = doc.styleSheets[0];
if (docStyle && docStyle.addRule)
{ //IE
docStyle.addRule('#s a','display:inline');
docStyle.addRule('#s p a .sl','display:inline');
}
else if (docStyle && docStyle.insertRule)
{
docStyle.insertRule('#s a {display:inline}', docStyle.cssRules.length);
docStyle.insertRule('#s p a .sl {display:inline}', docStyle.cssRules.length);
}
}
return [cN[i].nextSibling, cN[i].parentNode];
}
}
// don't display anything
return [null, null];
};
/////////////// 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") > -1) ||
(domain.indexOf("shop.benl.ebay") > -1))
{
if ((path.indexOf("?_from=") == 0) ||
(path.indexOf("i.html") > -1))
{
return true;
}
}
// ebay.se
if ((domain.indexOf("search.eim.ebay") > -1) &&
((path.indexOf("?kw=") > -1) || (path.indexOf("?ev=") > -1)))
{
return true;
}
if ((domain.indexOf("search.auction.co.kr") > -1 ) &&
((path.indexOf("?keyword=") > -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) &&
((domain.indexOf(".mercadolibre.") > -1 ) ||
(domain.indexOf(".mercadolivre.") > -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?") > -1 )
{
if ( tag.title == null || tag.title.length < 0 )
return false;
outHref = searchshield.removeHtmlTags(tag.title);
if (outHref.indexOf(" ") == -1)
{ // no spaces
if (outHref.indexOf(".") > -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 && (parentNode.className.toLowerCase() == "google-ad-link"))
{
if (tag.href.indexOf("/aclk?sa=") != -1)
{
findStr = "&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("&");
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 && (parentNode.className.toLowerCase() == "link"))
{
if (tag.href.indexOf("adcr.naver.com") > -1)
{
outHref = tag.innerText;
if ((outHref == null) || (outHref.length < 0))
return false;
return outHref;
}
}
// latin america ebay
if ( tag.href.toLowerCase().indexOf("clickcounter?") > -1 )
{
var spanElements = tag.getElementsByTagName("span");
if ((spanElements != null) &&
(spanElements.length > 0))
{
if ( spanElements[0].className.toLowerCase() == "mclics-url" )
{
outHref = spanElements[0].innerHTML;
if ( outHref == null || outHref.length < 0 )
return false;
outHref = searchshield.removeHtmlTags(outHref);
if (outHref.indexOf(" ") == -1)
{ // no spaces
if (outHref.indexOf(".") > -1)
{ // at least one dot
if ((outHref.toLowerCase().indexOf("mercadolibre") == -1) &&
(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") > -1) &&
(path.indexOf("/ad") == -1))
{
return true;
}
return false;
};
searchshield.DiggSearchEngine.prototype.includeLink = function(tag)
{
var outHref = false;
var findStr = "";
if ((tag.parentNode) &&
(tag.parentNode.className.toLowerCase() == "digg-count"))
{
return false;
}
if (searchshield.DoesURLContain(tag.href, this.search.uri.host))
{
if (tag.className && 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 && (tag.parentNode.tagName == "DIV"))
{
if (tag.parentNode.id.indexOf("text-") != -1)
{
return tag.href;
}
}
else if ( tag.parentNode && tag.parentNode.parentNode && 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 < 1)
return false;
// no verdicts on source of twit for example "from TweetDeck"
if ((tag.className.indexOf("tweet-url web") == 0) &&
(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) &&
((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.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 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 (searchshield.DoesURLContain(tag.href, this.search.uri.host) ||
(searchshield.DoesURLContain(tag.href, 'static.ak.fbcdn.net')))
{
return false;
}
// don't put verdicts in areas where typing is going on
if (tag.parentNode)
{
var parentDiv = searchshield.getParentNodeByTagName("DIV", tag, "className");
if (parentDiv &&
(parentDiv.className == "Mentions_Input") ||
(parentDiv.className.indexOf('UIThumbPager_') != -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 ///////////////
/////////////// 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 > 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 && 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,
orig_onmousemove: null,
reset: function () {
avglsflyover.count = 0;
avglsflyover.poppedUp = false;
avglsflyover.poppedElement = null;
avglsflyover.orig_onmousemove = 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 || event.currentTarget;
var frameDoc = eventTarget.ownerDocument;
// if the element is the clock, don't pop over it
if ((eventTarget.src != null) && (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, "'");
}
// 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;
div.onmouseout = avglsflyover.hide;
// if an onmousemove is already set and it isn't us, save it and restore later
if ((frameDoc.onmousemove != null) && (frameDoc.onmousemove != avglsflyover.position))
avglsflyover.orig_onmousemove = frameDoc.onmousemove;
frameDoc.onmousemove = avglsflyover.position;
},
hide: function (event, force) {
var div = document.getElementById("XPLSS_Flyover");
if ((div == null) || (div.style == null) || (div.style.visibility == "hidden"))
return;
var trans_div = document.getElementById("XPLSS_Trans");
if ((trans_div == null) || (trans_div.style == null) || (trans_div.style.visibility == "hidden"))
return;
if (!!force)
return setFlyoverStyle(div, trans_div);
if (!event)
event = window.event;
// establish target element and get its containing document object
// in case verdict is inside a frame
var eventTarget = event.srcElement || event.currentTarget;
var frameDoc = eventTarget.ownerDocument;
// restore onmousemove
if (avglsflyover.orig_onmousemove != null)
frameDoc.onmousemove = avglsflyover.orig_onmousemove;
if (avglsflyover.poppedElement)
avglsflyover.poppedElement.style.border = "";
var relatedElement = event.toElement;
if (!relatedElement)
{ //this happens on mouseout when verdict and flyover are on different frames/docs
window.top.document.detachEvent('onmouseout', avglsflyover.hide);
window.top.document.attachEvent('onmouseout', avglsflyover.hide);
return;
}
// make sure we aren't still over the popped image or our layer
if (searchshield.containedIn(avglsflyover.poppedElement, relatedElement) ||
searchshield.containedIn(div, relatedElement) ||
searchshield.containedIn(trans_div, relatedElement))
{
return;
}
setFlyoverStyle();
// hide and move somewhere off screen (negative offsets)
function setFlyoverStyle()
{
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 && 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 < 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) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2);
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2);
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > 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 + "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";
// show the transparent layer
var trans_div = document.getElementById("XPLSS_Trans");
if (trans_div == null)
return;
trans_div.style.visibility = "visible";
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 += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>
";
html += "<img src=linkscanner://LS_Logo_Results.gif />
";
html += riskCategory + "
";
html += riskName + "
</div>";
return html;
},
popup: function (event, flyover, 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 uri = searchshield.parseLink(unescape(finalUrl));
if (uri.source != null)
{ // regexp failed so used split to parse url
var qsUrl = uri.source.indexOf("?url=");
if (qsUrl != -1)
riskName = blUrl.riskNameLabel + uri.source.substring(qsUrl + 5);
else
riskName = blUrl.riskNameLabel + uri.source;
}
else if ((uri.qsArray.url != null) && (uri.qsArray.url.length > 0))
{
riskName = blUrl.riskNameLabel + uri.qsArray.url;
}
else
riskName = blUrl.riskNameLabel + blUrl.sUrl
flyover = avglsinlineflyover.build(blUrl.riskCategory, riskName, blUrl.bgColor, blUrl.borderColor);
}
div.innerHTML = flyover;
div.style.width = "auto"; //reset width
div.style.position = "absolute";
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.visibility = "hidden"; //invisible
div.style.left = "-5000px";
},
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] > 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;
// normalize pos to 0 -- get amount of scrolling in browser window
var scroll = searchshield.scrollSize(imageElem);
var pageOffsetX = scroll[0];
var pageOffsetY = scroll[1];
var hasParentFrame = scroll[2];
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
{
offsetY = windowY - flyoverY;
}
else if (scrollBarX && ((windowY - (posY + halfY)) < 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 = paddedOffsetX + "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 < 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 < images.length; i++)
{
if (images[i].id == "avg_ls_image")
{
imageElem = images[i];
break;
}
}
return imageElem;
}
},
mouseOverHandler: function (e, doc, engine) {
if (e && e.srcElement && 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 (finalUrl)
{
// update the verdict
engine.display_inline(doc, new_element, finalUrl, null, true);
}
}
};
/////////////// FLYOVERS ///////////////
</script>
<div id="XPLSS_PopupAlert" style="position: absolute; z-index: 10000;">
</div>
</div><div style="margin-bottom: 0cm;">
</div><div style="margin-bottom: 0cm;">
<span id="result_box" lang="en"><span class="hps" closure_uid_q1exep="741" title="Fai clic per visualizzare le traduzioni alternative">Another</span> <span class="hps" closure_uid_q1exep="742" title="Fai clic per visualizzare le traduzioni alternative">possibility</span> <span class="hps" closure_uid_q1exep="743" title="Fai clic per visualizzare le traduzioni alternative">of</span> <span class="hps" closure_uid_q1exep="744" title="Fai clic per visualizzare le traduzioni alternative">joint</span>
<span class="hps" closure_uid_q1exep="745" title="Fai clic per visualizzare le traduzioni alternative">In</span> <span class="hps" closure_uid_q1exep="746" title="Fai clic per visualizzare le traduzioni alternative">the video</span> <span class="hps" closure_uid_q1exep="747" title="Fai clic per visualizzare le traduzioni alternative">there</span> <span class="hps" closure_uid_q1exep="748" title="Fai clic per visualizzare le traduzioni alternative">is a</span> <span class="hps" closure_uid_q1exep="749" title="Fai clic per visualizzare le traduzioni alternative">tie</span><span closure_uid_q1exep="750" title="Fai clic per visualizzare le traduzioni alternative">, which is</span> <span class="hps" closure_uid_q1exep="751" title="Fai clic per visualizzare le traduzioni alternative">used</span> <span class="hps" closure_uid_q1exep="752" title="Fai clic per visualizzare le traduzioni alternative">for the</span> <span class="hps" closure_uid_q1exep="753" title="Fai clic per visualizzare le traduzioni alternative">union of</span> <span class="hps" closure_uid_q1exep="754" title="Fai clic per visualizzare le traduzioni alternative">two</span> <span class="hps" closure_uid_q1exep="755" title="Fai clic per visualizzare le traduzioni alternative">panels</span><span closure_uid_q1exep="756" title="Fai clic per visualizzare le traduzioni alternative">.</span>
<span class="hps" closure_uid_q1exep="757" title="Fai clic per visualizzare le traduzioni alternative">Material</span> <span class="hps" closure_uid_q1exep="758" title="Fai clic per visualizzare le traduzioni alternative">used</span>
<span class="hps atn" closure_uid_q1exep="759" title="Fai clic per visualizzare le traduzioni alternative">-</span><span closure_uid_q1exep="760" title="Fai clic per visualizzare le traduzioni alternative">piece</span> <span class="hps" closure_uid_q1exep="761" title="Fai clic per visualizzare le traduzioni alternative">threaded</span> <span class="hps" closure_uid_q1exep="762" title="Fai clic per visualizzare le traduzioni alternative">rod</span> <span class="hps" closure_uid_q1exep="763" title="Fai clic per visualizzare le traduzioni alternative">diameter</span> <span class="hps" closure_uid_q1exep="764" title="Fai clic per visualizzare le traduzioni alternative">6</span> <span class="hps" closure_uid_q1exep="765" title="Fai clic per visualizzare le traduzioni alternative">mm</span> <span class="hps" closure_uid_q1exep="766" title="Fai clic per visualizzare le traduzioni alternative">--------</span>
<span class="hps" closure_uid_q1exep="767" title="Fai clic per visualizzare le traduzioni alternative">Set</span> <span class="hps" closure_uid_q1exep="768" title="Fai clic per visualizzare le traduzioni alternative">up</span> <span class="hps" closure_uid_q1exep="769" title="Fai clic per visualizzare le traduzioni alternative">a</span> <span class="hps" closure_uid_q1exep="770" title="Fai clic per visualizzare le traduzioni alternative">panel</span> <span class="hps" closure_uid_q1exep="771" title="Fai clic per visualizzare le traduzioni alternative">and</span> <span class="hps" closure_uid_q1exep="772" title="Fai clic per visualizzare le traduzioni alternative">anchor</span> <span class="hps" closure_uid_q1exep="773" title="Fai clic per visualizzare le traduzioni alternative">bolt</span>
<span class="hps" closure_uid_q1exep="774" title="Fai clic per visualizzare le traduzioni alternative">14</span> <span class="hps" closure_uid_q1exep="775" title="Fai clic per visualizzare le traduzioni alternative">mm</span><span class="atn" closure_uid_q1exep="776" title="Fai clic per visualizzare le traduzioni alternative">-</span><span closure_uid_q1exep="777" title="Fai clic per visualizzare le traduzioni alternative">diameter</span> <span class="hps" closure_uid_q1exep="778" title="Fai clic per visualizzare le traduzioni alternative">compass</span> <span class="hps" closure_uid_q1exep="779" title="Fai clic per visualizzare le traduzioni alternative">ecentrica</span>
<span class="hps" closure_uid_q1exep="780" title="Fai clic per visualizzare le traduzioni alternative">On</span> <span class="hps" closure_uid_q1exep="781" title="Fai clic per visualizzare le traduzioni alternative">the opposite</span> <span class="hps" closure_uid_q1exep="782" title="Fai clic per visualizzare le traduzioni alternative">panel</span> <span class="hps" closure_uid_q1exep="783" title="Fai clic per visualizzare le traduzioni alternative">insert</span> <span class="hps" closure_uid_q1exep="784" title="Fai clic per visualizzare le traduzioni alternative">bush</span>
<span class="hps" closure_uid_q1exep="785" title="Fai clic per visualizzare le traduzioni alternative">Join</span> <span class="hps" closure_uid_q1exep="786" title="Fai clic per visualizzare le traduzioni alternative">the two parts</span> <span class="hps" closure_uid_q1exep="787" title="Fai clic per visualizzare le traduzioni alternative">by inserting</span> <span class="hps" closure_uid_q1exep="788" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_q1exep="789" title="Fai clic per visualizzare le traduzioni alternative">rod</span> <span class="hps" closure_uid_q1exep="790" title="Fai clic per visualizzare le traduzioni alternative">into the</span> <span class="hps" closure_uid_q1exep="791" title="Fai clic per visualizzare le traduzioni alternative">bushing</span> <span class="hps" closure_uid_q1exep="792" title="Fai clic per visualizzare le traduzioni alternative">and</span> <span class="hps" closure_uid_q1exep="793" title="Fai clic per visualizzare le traduzioni alternative">tighten</span> <span class="hps" closure_uid_q1exep="794" title="Fai clic per visualizzare le traduzioni alternative">by turning</span> <span class="hps" closure_uid_q1exep="795" title="Fai clic per visualizzare le traduzioni alternative">the</span> <span class="hps" closure_uid_q1exep="796" title="Fai clic per visualizzare le traduzioni alternative">compass.</span></span></div><div style="margin-bottom: 0cm;">
</div><div style="margin-bottom: 0cm;">
</div><div style="margin-bottom: 0cm;">
</div></div><iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/jzvWywHF_WE" title="YouTube video player" width="380"></iframe>
<a href="http://ad.zanox.com/ppc/?17900406C1365697748T"><img align="bottom" alt="Internet 100 TIM" border="0" height="250" hspace="1" src="http://ad.zanox.com/ppv/?17900406C1365697748" width="250" /></a>
</div>Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0tag:blogger.com,1999:blog-4421047768738780888.post-53059959489700189912011-01-08T12:28:00.000-08:002012-02-23T01:45:53.906-08:00Vado in ferramenta .... I go to the hardware store ....<span style="background-color: #eeeeee;"> </span><span style="background-color: #f3f3f3;">Our mascot Hobby</span><a href="mailto:hobbyferramenta@gmail.com"><span style="background-color: #f3f3f3; color: #660000;">ferramenta</span></a><span style="background-color: #f3f3f3;"> la nostra mascot</span><br />
<div class="separator" style="clear: both; text-align: center;"><span style="background-color: #eeeeee;"><br />
</span></div><div class="separator" style="clear: both; text-align: center;"><span style="background-color: #eeeeee;"><script type="text/javascript">
// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;
var shortened_urls = new Array("tinyurl.com","3.ly","bit.ly","tiny.cc","short.to","is.gd","tr.im");
var border_colors = new Array( "#00A120;", "#EAA500;", "#F57301;", "#D20003;" );
var background_colors = new Array( "#C3E5CA;", "#FEEFAE;", "#FFD3B0;", "#F5D4C1;" );
var images = new Array ( "linkscanner://safe12.png", "linkscanner://caution12.png", "linkscanner://warning12.png", "linkscanner://blocked12.png" );
var showCleanVerdicts = true;
var showLowRiskVerdicts = true;
var showMedRiskVerdicts = true;
function avg_ls_does_url_contain(url, contain)
{
if ((url == null) || (url.length < 1))
{
return false;
}
var strUrl = new String(url);
// breakup the url to check
var parts = strUrl.split("/");
if (parts.length < 3)
{
return false;
}
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
{
return true;
}
return false;
}
function avg_ls_valid_gmail_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 4))
return false;
var domain= parts[2];
var path = parts[3];
if ((domain.indexOf("mail.google.") != -1) ||
(domain.indexOf("gmail.") != -1))
{
// save the hostname to use getting links
gAvgHostName = "google.com";
return true;
}
return false;
}
function avg_ls_get_parent_div(element)
{
if ((element == null) || (element.parentNode == null))
return null;
while (element != null)
{
if ((element.tagName == "DIV") && element.className &&
(element.className.length > 0))
return element;
element = element.parentNode;
}
// no div
return null;
}
function avg_ls_parse_ads(href)
{
if (!href)
return href;
// check for google ad
var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 0))
return match
}
return href;
}
function avg_ls_get_gmail_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't mark anything but http://
if (element.href.indexOf("mailto") == 0)
continue;
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") &&
((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
)) // right ads
{
// parse for any ads
var newHref = avg_ls_parse_ads(element.href);
// add the image
avg_ls_check_url(doc, element, newHref);
}
}
}
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
}
}
return links;
}
function avg_ls_valid_facebook_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 2))
return false;
var domain= parts[2];
if (domain.indexOf("www.facebook.com") != -1)
{
// save the hostname to use getting links
gAvgHostName = "www.facebook.com";
return true;
}
return false;
}
function avg_ls_get_facebook_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't put verdicts in areas where typing is going on
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") && (parentDiv.className == "Mentions_Input"))
continue;
}
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
avg_ls_check_url(doc, element, element.href);
}
/*///cbk - take it out for now the home page can't access frameElement
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
if (doc.frames[j].frameElement != null )
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
}
avg_ls_get_facebook_links(doc.frames[j].document, processFrames);
}
}
*///cbk
return links;
}
function avg_ls_has_image(element)
{
if ((element == null) || (element.firstChild == null))
return false;
var nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return true;
nextElem = nextElem.nextSibling;
}
return false;
}
function avg_ls_update_image(doc, element, image )
{
if ((doc == null) || (element == null))
return ;
// mark the element as processed
element.setAttribute("avglschecked", "1");
// if no image, nothing to add
if (image == null)
return;
// update the image
if (element && element.firstChild)
{
image_elem = element.firstChild;
element.firstChild.src = image;
}
}
function avg_ls_add_image(doc, element, image, flyover)
{
if ((doc == null) || (element == null))
return;
// if no image, nothing to add
if (image == null)
return;
// create a new image
var img = doc.createElement("img");
img.src = image;
img.border="0";
img.hspace="5";
img.id = "avg_ls_image";
img.setAttribute("title", "");
// append the image to the link
element.appendChild(img);
img = null;
var newImg = element.lastChild;
if (flyover && newImg && newImg.id == "avg_ls_image")
{
newImg.attachEvent("onmouseover", function() {avg_ls_showinline(newImg, flyover)});
newImg.attachEvent("onmouseout", function() {avg_ls_hideinline()});
}
}
var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_gmail_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}
function avg_ls_monitor_facebook(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_facebook_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_facebook(doc, processFrames);}, 1000);
}
function avg_ls_process_links(doc, processFrames)
{
if (avg_ls_valid_gmail_search(doc.location.href))
{
// process the gmail links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_gmail(doc, processFrames);
}
if (avg_ls_valid_facebook_search(doc.location.href))
{
// process the facebook links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_facebook(doc, processFrames);
}
}
function avg_ls_reload(e)
{
avg_ls_process_links(document, true);
}
function avg_ls_onload(e)
{
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
var doc = document;
// set the event handler for the data element to listen for load/reloads
var data_element = doc.getElementById("avglsdata");
if (data_element)
{
// save data element for use in later iframes
gAvgDataElement = data_element;
// rowexit event used to notify javascript of a page data load
avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
avg_ls_add_event(data_element, "rowexit", avg_ls_reload);
// process links for the document
avg_ls_process_links(doc, true);
}
}
function avg_ls_get_anchors(doc)
{
return doc.getElementsByTagName("a");
}
function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
var avg_ls_data = null;
// get the data element
if (gAvgDataElement == null)
{
avg_ls_data = doc.getElementById("avglsdata");
if ((avg_ls_data == null) || (name == null))
{
// data element does not exist
return;
}
gAvgDataElement = avg_ls_data;
}
else
{
avg_ls_data = gAvgDataElement;
}
// for some reason you can't fire and event on an element with no parent node
if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
{
return;
}
// set the attributes
avg_ls_data.setAttribute("function", name);
if (param1)
avg_ls_data.setAttribute("param1", param1);
if (param2)
avg_ls_data.setAttribute("param2", param2);
if (param3)
avg_ls_data.setAttribute("param3", param3);
if (param4)
avg_ls_data.setAttribute("param4", param4);
if (param5)
avg_ls_data.setAttribute("param5", param5);
avg_ls_data.fireEvent("onrowenter");
// get the result
return avg_ls_data.getAttribute("result");
}
function avg_ls_get_image(result)
{
if ((result == null) || (result.length < 1))
return null;
var strResult = new String(result);
var parts = strResult.split("::");
if (parts.length < 3)
return;
var nSeverity = parseInt(parts[0]);
var image = null;
switch(nSeverity)
{
case 0:
if (showCleanVerdicts)
image = images[nSeverity];
break;
case 1:
if (showLowRiskVerdicts)
image = images[nSeverity];
break;
case 2:
if (showMedRiskVerdicts)
image = images[nSeverity];
break;
case 3:
image = images[nSeverity];
break;
default:
image = "linkscanner://unknown12.gif";
break;
}
return image;
}
// do the url check
function avg_ls_check_url(doc, element, href)
{
if (avg_ls_has_image(element))
return;
var result = avg_ls_call_func(doc, "MalsiteCheck", href);
if (result == null)
return;
var parts = result.split("::");
if (parts.length < 3)
return;
var nSeverity = parts[0];
var riskCategory = parts[1];
var riskName = parts[2];
if ( nSeverity == 0 )
{ // safe shortened urls will get checked at mouse over time
if (avg_ls_filter_url(href, shortened_urls))
{
// add onmouseover for anchors with shortened url
avg_ls_add_event(element, "mouseover", avg_ls_mouse_over);
return;
}
}
// mark as processed
element.setAttribute("avglschecked", "1");
// get the image from the result
var image = avg_ls_get_image(result);
if (image == null)
return;
var bgColor = background_colors[nSeverity];
var borderColor = border_colors[nSeverity];
// build the inline html
var html = "";
html += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>";
html += "<img src=linkscanner://LS_Logo_Results.gif/>
";
html += riskCategory + "
";
html += riskName + "
</div>";
avg_ls_add_image(doc, element, image, html);
}
function avg_ls_add_event(obj, name, func)
{
if (obj.addEventListener)
{
obj.addEventListener(name, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_remove_event(obj, name, func)
{
if (obj.removeEventListener)
{
obj.removeEventListener(name, func, false);
return true;
}
else if (obj.detachEvent)
{
return obj.detachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_mouse_over(e)
{
if (e && e.srcElement && e.srcElement.href)
{
var element = e.srcElement;
if (element.tagName == "A")
{
// check if it has an image already
if (avg_ls_has_image(element))
{
return;
}
// add the image, returns the anchor not the image
avg_ls_add_image(document, element, "linkscanner://clock12.png");
// do the check and update in the background
setTimeout(function() {avg_ls_check_and_update(document, element);}, 1);
}
}
}
function avg_ls_get_inline_image(element)
{
var nextElem = null;
if ((element == null) || (element.firstChild == null))
return nextElem;
nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return nextElem;
nextElem = nextElem.nextSibling;
}
return null;
}
function avg_ls_inline_hide_verdict(anchor)
{
var image = avg_ls_get_inline_image(anchor);
if ( image )
{
image.style.visibility = "hidden";
}
}
function avg_ls_check_and_update(doc, element)
{
var result = avg_ls_call_func(doc, "GetFinalUrl", element.href);
if (result)
{
var result2 = avg_ls_call_func(doc, "MalsiteCheck", result);
if (result2 == null)
return;
// remove the mouseover for this element, no need to fire again
avg_ls_remove_event(element, "mouseover", avg_ls_mouse_over);
// get the image from the result
var image = avg_ls_get_image(result2);
if (image == null)
avg_ls_inline_hide_verdict(element);
else
{
var img_elem = avg_ls_get_inline_image(element);
if (img_elem)
{
img_elem.src = image;
}
}
}
}
// function to find a url in a filter list
function avg_ls_filter_url(url, filter)
{
var strUrl = new String(url);
var parts = strUrl.split("/");
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < filter.length; i++)
{
if (domain.indexOf(filter[i]) != -1)
{
return true;
}
}
return false;
}
function avg_ls_init_ratings(doc)
{
// get configuration for verdict displays
var result = avg_ls_call_func(doc, "GetRatingsConfig");
var strResult = new String(result);
var parts = strResult.split("::");
if (parts != null && parts.length >= 4)
{
showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;
showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;
showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;
}
// setup for displaying the inline popup
if ( !doc.getElementById("avg_ls_inline_popup") )
{
var box = doc.createElement("DIV");
doc.body.appendChild(box);
box.id = "avg_ls_inline_popup";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
}
}
avg_ls_add_event(window, "load", avg_ls_onload);
</script><script type="text/javascript">
/*
--------------------------------------------------------------------------
avg linkscanner inline verdict info popup
--------------------------------------------------------------------------
*/
// write verdict info and display the inline popup
function avg_ls_showinline(imageElem, msg)
{
//set verdict info
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.innerHTML = msg;
flyover.style.width = "auto"; //reset width
flyover.style.position = "absolute";
avg_ls_positioninline(imageElem);
}
function avg_ls_positioninline(imageElem)
{
var flyover = document.getElementById('avg_ls_inline_popup');
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
var scrollXWidth = 19; // approx
// Must know if there is a horizontal scroll bar for Firefox
// for proper flyover positioning near bottom edge
var scrollBarX = false; //default for Microsoft IE
var scrollYWidth = 18; //normally 17 (+1 top border)
if (window.innerHeight)
{ // not MSIE
try
{
scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;
scrollBarX = (document.documentElement.clientWidth < document.documentElement.scrollWidth);
}
catch(err){}
}
// get window sizes
if (window.innerHeight == undefined) // Microsoft IE
{
var windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;
var windowY = document.documentElement.clientHeight || document.body.clientHeight;
}
else
{
var windowX = window.innerWidth - scrollXWidth;
var windowY = window.innerHeight;
if (scrollBarX)
windowY -= scrollYWidth;
}
// get the flyover dimensions
if (window.getComputedStyle == undefined) // Microsoft IE
{
var flyoverX = parseInt(flyover.offsetWidth);
var flyoverY = parseInt(flyover.offsetHeight);
}
else
{
var style = document.defaultView.getComputedStyle(flyover, null);
var flyoverX = parseInt(style.width);
var flyoverY = parseInt(style.height);
}
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 = offsetLeft(imageElem) + halfX;
var posY = offsetTop(imageElem) + halfY;
var pageOffsetX = 0;
var pageOffsetY = 0;
// normalize pos to 0 -- get amount of scrolling in browser window
var hasParentFrame = false;
if (window.pageXOffset == undefined) // Microsoft IE
{
pageOffsetX = document.documentElement.scrollLeft || document.body.scrollLeft;
pageOffsetY = document.documentElement.scrollTop || document.body.scrollLeft;
var frames = document.frames;
if (frames)
{
for (var i=0; i < frames.length; i++)
{
if (frames[i].document.getElementById(imageElem.id))
{
pageOffsetX = frames[i].document.documentElement.scrollLeft;
pageOffsetY = frames[i].document.documentElement.scrollTop;
hasParentFrame = true;
break;
}
}
}
}
else
{
pageOffsetX = window.pageXOffset;
pageOffsetY = window.pageYOffset;
}
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
offsetY = windowY - flyoverY;
// 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 = paddedOffsetX + "px";
avg_ls_displayinline();
}
function avg_ls_displayinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
// show the flyover
flyover.style.visibility = "visible";
}
function avg_ls_hideinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.visibility = "hidden"; //invisible
flyover.style.left = "-5000px";
}
function offsetTop(element)
{
var offset = 0;
while (element)
{
offset += element.offsetTop;
element = element.offsetParent;
}
return offset;
}
function offsetLeft(element)
{
var offset = 0;
while (element)
{
offset += element.offsetLeft;
element = element.offsetParent;
}
return offset;
}
</script></span></div><div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"><span style="background-color: #eeeeee;"></span></div><span style="background-color: #eeeeee;"><img src="https://mail.google.com/mail/?attid=0.1&disp=emb&view=att&th=12f0070f65b6e162" /></span><br />
<span style="background-color: #eeeeee;"><script type="text/javascript">
// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;
var shortened_urls = new Array("tinyurl.com","3.ly","bit.ly","tiny.cc","short.to","is.gd","tr.im");
var border_colors = new Array( "#00A120;", "#EAA500;", "#F57301;", "#D20003;" );
var background_colors = new Array( "#C3E5CA;", "#FEEFAE;", "#FFD3B0;", "#F5D4C1;" );
var images = new Array ( "linkscanner://safe12.png", "linkscanner://caution12.png", "linkscanner://warning12.png", "linkscanner://blocked12.png" );
var showCleanVerdicts = true;
var showLowRiskVerdicts = true;
var showMedRiskVerdicts = true;
function avg_ls_does_url_contain(url, contain)
{
if ((url == null) || (url.length < 1))
{
return false;
}
var strUrl = new String(url);
// breakup the url to check
var parts = strUrl.split("/");
if (parts.length < 3)
{
return false;
}
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
{
return true;
}
return false;
}
function avg_ls_valid_gmail_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 4))
return false;
var domain= parts[2];
var path = parts[3];
if ((domain.indexOf("mail.google.") != -1) ||
(domain.indexOf("gmail.") != -1))
{
// save the hostname to use getting links
gAvgHostName = "google.com";
return true;
}
return false;
}
function avg_ls_get_parent_div(element)
{
if ((element == null) || (element.parentNode == null))
return null;
while (element != null)
{
if ((element.tagName == "DIV") && element.className &&
(element.className.length > 0))
return element;
element = element.parentNode;
}
// no div
return null;
}
function avg_ls_parse_ads(href)
{
if (!href)
return href;
// check for google ad
var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 0))
return match
}
return href;
}
function avg_ls_get_gmail_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't mark anything but http://
if (element.href.indexOf("mailto") == 0)
continue;
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") &&
((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
)) // right ads
{
// parse for any ads
var newHref = avg_ls_parse_ads(element.href);
// add the image
avg_ls_check_url(doc, element, newHref);
}
}
}
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
}
}
return links;
}
function avg_ls_valid_facebook_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 2))
return false;
var domain= parts[2];
if (domain.indexOf("www.facebook.com") != -1)
{
// save the hostname to use getting links
gAvgHostName = "www.facebook.com";
return true;
}
return false;
}
function avg_ls_get_facebook_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't put verdicts in areas where typing is going on
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") && (parentDiv.className == "Mentions_Input"))
continue;
}
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
avg_ls_check_url(doc, element, element.href);
}
/*///cbk - take it out for now the home page can't access frameElement
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
if (doc.frames[j].frameElement != null )
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
}
avg_ls_get_facebook_links(doc.frames[j].document, processFrames);
}
}
*///cbk
return links;
}
function avg_ls_has_image(element)
{
if ((element == null) || (element.firstChild == null))
return false;
var nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return true;
nextElem = nextElem.nextSibling;
}
return false;
}
function avg_ls_update_image(doc, element, image )
{
if ((doc == null) || (element == null))
return ;
// mark the element as processed
element.setAttribute("avglschecked", "1");
// if no image, nothing to add
if (image == null)
return;
// update the image
if (element && element.firstChild)
{
image_elem = element.firstChild;
element.firstChild.src = image;
}
}
function avg_ls_add_image(doc, element, image, flyover)
{
if ((doc == null) || (element == null))
return;
// if no image, nothing to add
if (image == null)
return;
// create a new image
var img = doc.createElement("img");
img.src = image;
img.border="0";
img.hspace="5";
img.id = "avg_ls_image";
img.setAttribute("title", "");
// append the image to the link
element.appendChild(img);
img = null;
var newImg = element.lastChild;
if (flyover && newImg && newImg.id == "avg_ls_image")
{
newImg.attachEvent("onmouseover", function() {avg_ls_showinline(newImg, flyover)});
newImg.attachEvent("onmouseout", function() {avg_ls_hideinline()});
}
}
var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_gmail_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}
function avg_ls_monitor_facebook(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_facebook_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_facebook(doc, processFrames);}, 1000);
}
function avg_ls_process_links(doc, processFrames)
{
if (avg_ls_valid_gmail_search(doc.location.href))
{
// process the gmail links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_gmail(doc, processFrames);
}
if (avg_ls_valid_facebook_search(doc.location.href))
{
// process the facebook links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_facebook(doc, processFrames);
}
}
function avg_ls_reload(e)
{
avg_ls_process_links(document, true);
}
function avg_ls_onload(e)
{
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
var doc = document;
// set the event handler for the data element to listen for load/reloads
var data_element = doc.getElementById("avglsdata");
if (data_element)
{
// save data element for use in later iframes
gAvgDataElement = data_element;
// rowexit event used to notify javascript of a page data load
avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
avg_ls_add_event(data_element, "rowexit", avg_ls_reload);
// process links for the document
avg_ls_process_links(doc, true);
}
}
function avg_ls_get_anchors(doc)
{
return doc.getElementsByTagName("a");
}
function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
var avg_ls_data = null;
// get the data element
if (gAvgDataElement == null)
{
avg_ls_data = doc.getElementById("avglsdata");
if ((avg_ls_data == null) || (name == null))
{
// data element does not exist
return;
}
gAvgDataElement = avg_ls_data;
}
else
{
avg_ls_data = gAvgDataElement;
}
// for some reason you can't fire and event on an element with no parent node
if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
{
return;
}
// set the attributes
avg_ls_data.setAttribute("function", name);
if (param1)
avg_ls_data.setAttribute("param1", param1);
if (param2)
avg_ls_data.setAttribute("param2", param2);
if (param3)
avg_ls_data.setAttribute("param3", param3);
if (param4)
avg_ls_data.setAttribute("param4", param4);
if (param5)
avg_ls_data.setAttribute("param5", param5);
avg_ls_data.fireEvent("onrowenter");
// get the result
return avg_ls_data.getAttribute("result");
}
function avg_ls_get_image(result)
{
if ((result == null) || (result.length < 1))
return null;
var strResult = new String(result);
var parts = strResult.split("::");
if (parts.length < 3)
return;
var nSeverity = parseInt(parts[0]);
var image = null;
switch(nSeverity)
{
case 0:
if (showCleanVerdicts)
image = images[nSeverity];
break;
case 1:
if (showLowRiskVerdicts)
image = images[nSeverity];
break;
case 2:
if (showMedRiskVerdicts)
image = images[nSeverity];
break;
case 3:
image = images[nSeverity];
break;
default:
image = "linkscanner://unknown12.gif";
break;
}
return image;
}
// do the url check
function avg_ls_check_url(doc, element, href)
{
if (avg_ls_has_image(element))
return;
var result = avg_ls_call_func(doc, "MalsiteCheck", href);
if (result == null)
return;
var parts = result.split("::");
if (parts.length < 3)
return;
var nSeverity = parts[0];
var riskCategory = parts[1];
var riskName = parts[2];
if ( nSeverity == 0 )
{ // safe shortened urls will get checked at mouse over time
if (avg_ls_filter_url(href, shortened_urls))
{
// add onmouseover for anchors with shortened url
avg_ls_add_event(element, "mouseover", avg_ls_mouse_over);
return;
}
}
// mark as processed
element.setAttribute("avglschecked", "1");
// get the image from the result
var image = avg_ls_get_image(result);
if (image == null)
return;
var bgColor = background_colors[nSeverity];
var borderColor = border_colors[nSeverity];
// build the inline html
var html = "";
html += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>";
html += "<img src=linkscanner://LS_Logo_Results.gif/>
";
html += riskCategory + "
";
html += riskName + "
</div>";
avg_ls_add_image(doc, element, image, html);
}
function avg_ls_add_event(obj, name, func)
{
if (obj.addEventListener)
{
obj.addEventListener(name, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_remove_event(obj, name, func)
{
if (obj.removeEventListener)
{
obj.removeEventListener(name, func, false);
return true;
}
else if (obj.detachEvent)
{
return obj.detachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_mouse_over(e)
{
if (e && e.srcElement && e.srcElement.href)
{
var element = e.srcElement;
if (element.tagName == "A")
{
// check if it has an image already
if (avg_ls_has_image(element))
{
return;
}
// add the image, returns the anchor not the image
avg_ls_add_image(document, element, "linkscanner://clock12.png");
// do the check and update in the background
setTimeout(function() {avg_ls_check_and_update(document, element);}, 1);
}
}
}
function avg_ls_get_inline_image(element)
{
var nextElem = null;
if ((element == null) || (element.firstChild == null))
return nextElem;
nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return nextElem;
nextElem = nextElem.nextSibling;
}
return null;
}
function avg_ls_inline_hide_verdict(anchor)
{
var image = avg_ls_get_inline_image(anchor);
if ( image )
{
image.style.visibility = "hidden";
}
}
function avg_ls_check_and_update(doc, element)
{
var result = avg_ls_call_func(doc, "GetFinalUrl", element.href);
if (result)
{
var result2 = avg_ls_call_func(doc, "MalsiteCheck", result);
if (result2 == null)
return;
// remove the mouseover for this element, no need to fire again
avg_ls_remove_event(element, "mouseover", avg_ls_mouse_over);
// get the image from the result
var image = avg_ls_get_image(result2);
if (image == null)
avg_ls_inline_hide_verdict(element);
else
{
var img_elem = avg_ls_get_inline_image(element);
if (img_elem)
{
img_elem.src = image;
}
}
}
}
// function to find a url in a filter list
function avg_ls_filter_url(url, filter)
{
var strUrl = new String(url);
var parts = strUrl.split("/");
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < filter.length; i++)
{
if (domain.indexOf(filter[i]) != -1)
{
return true;
}
}
return false;
}
function avg_ls_init_ratings(doc)
{
// get configuration for verdict displays
var result = avg_ls_call_func(doc, "GetRatingsConfig");
var strResult = new String(result);
var parts = strResult.split("::");
if (parts != null && parts.length >= 4)
{
showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;
showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;
showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;
}
// setup for displaying the inline popup
if ( !doc.getElementById("avg_ls_inline_popup") )
{
var box = doc.createElement("DIV");
doc.body.appendChild(box);
box.id = "avg_ls_inline_popup";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
}
}
avg_ls_add_event(window, "load", avg_ls_onload);
</script><script type="text/javascript">
/*
--------------------------------------------------------------------------
avg linkscanner inline verdict info popup
--------------------------------------------------------------------------
*/
// write verdict info and display the inline popup
function avg_ls_showinline(imageElem, msg)
{
//set verdict info
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.innerHTML = msg;
flyover.style.width = "auto"; //reset width
flyover.style.position = "absolute";
avg_ls_positioninline(imageElem);
}
function avg_ls_positioninline(imageElem)
{
var flyover = document.getElementById('avg_ls_inline_popup');
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
var scrollXWidth = 19; // approx
// Must know if there is a horizontal scroll bar for Firefox
// for proper flyover positioning near bottom edge
var scrollBarX = false; //default for Microsoft IE
var scrollYWidth = 18; //normally 17 (+1 top border)
if (window.innerHeight)
{ // not MSIE
try
{
scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;
scrollBarX = (document.documentElement.clientWidth < document.documentElement.scrollWidth);
}
catch(err){}
}
// get window sizes
if (window.innerHeight == undefined) // Microsoft IE
{
var windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;
var windowY = document.documentElement.clientHeight || document.body.clientHeight;
}
else
{
var windowX = window.innerWidth - scrollXWidth;
var windowY = window.innerHeight;
if (scrollBarX)
windowY -= scrollYWidth;
}
// get the flyover dimensions
if (window.getComputedStyle == undefined) // Microsoft IE
{
var flyoverX = parseInt(flyover.offsetWidth);
var flyoverY = parseInt(flyover.offsetHeight);
}
else
{
var style = document.defaultView.getComputedStyle(flyover, null);
var flyoverX = parseInt(style.width);
var flyoverY = parseInt(style.height);
}
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 = offsetLeft(imageElem) + halfX;
var posY = offsetTop(imageElem) + halfY;
var pageOffsetX = 0;
var pageOffsetY = 0;
// normalize pos to 0 -- get amount of scrolling in browser window
var hasParentFrame = false;
if (window.pageXOffset == undefined) // Microsoft IE
{
pageOffsetX = document.documentElement.scrollLeft || document.body.scrollLeft;
pageOffsetY = document.documentElement.scrollTop || document.body.scrollLeft;
var frames = document.frames;
if (frames)
{
for (var i=0; i < frames.length; i++)
{
if (frames[i].document.getElementById(imageElem.id))
{
pageOffsetX = frames[i].document.documentElement.scrollLeft;
pageOffsetY = frames[i].document.documentElement.scrollTop;
hasParentFrame = true;
break;
}
}
}
}
else
{
pageOffsetX = window.pageXOffset;
pageOffsetY = window.pageYOffset;
}
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
offsetY = windowY - flyoverY;
// 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 = paddedOffsetX + "px";
avg_ls_displayinline();
}
function avg_ls_displayinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
// show the flyover
flyover.style.visibility = "visible";
}
function avg_ls_hideinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.visibility = "hidden"; //invisible
flyover.style.left = "-5000px";
}
function offsetTop(element)
{
var offset = 0;
while (element)
{
offset += element.offsetTop;
element = element.offsetParent;
}
return offset;
}
function offsetLeft(element)
{
var offset = 0;
while (element)
{
offset += element.offsetLeft;
element = element.offsetParent;
}
return offset;
}
</script></span><br />
<div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"></div><span style="background-color: #eeeeee;"><br />
</span><br />
<span style="background-color: #eeeeee;"><br />
</span><br />
<div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Sè devi aggiustare una antina della cucina, dove vai?</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Ho rotto la chiave nella serrature, dove trovo una nuova?</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Devo fissare un panello in legno, dove trovo il sistema di fissaggio?</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Mi serve qualche cosa sulla quale appendo la<strong> maglia</strong>, a,si, appendini,</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">dove trovo?</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Le porte cigolano, cosa posso usare per eliminare il fastidio?</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Si, si, vado in ferramenta.</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Puoi trovare le risposte ai tuoi imprevisti giornalieri in negozi, che,oltre</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">a fornire l'articolo desiderato, cercano di dare valore aggiunto, cercando</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">di risolvere le richieste (esempio tendaggi) facendo combinazioni, pur</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">di ottenere le misure o le dimensioni del prodotto visualizzato nel pensiero.</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Troviamo dagli </span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Accessori per mobili</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Ceriniere a libro, Anuba ,a scomparsa,decorative</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"> (dalla cernieretta da cofanetto oreficeria a dimensioni di</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"> grandezze importanti)</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"></span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Cerniere per antine cucina da incasso</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><span style="color: white;"></span></span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Portoni in legno richiedono un settore a sè</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"> dalle cerniere ai fermaporta, per non dimenticare i centinaia </span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"> di tipi serrature-incasso </span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"> </span><a href="http://www.utensillegno.it/"><span style="background-color: #eeeeee; color: #660000;">Utensil legno</span></a></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"> </span><a href="http://www.omad.it/"><span style="background-color: #eeeeee; color: #660000;">Omad</span></a></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Scorrevoli per porte, finestre, armadi</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"> </span><a href="http://www.ternoscorrevoli.it/"><span style="background-color: #eeeeee; color: #660000;">Terno scorrevoli</span></a></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Supporti reggimensole decorativi,a scomparsa,per vetro</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"></span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"></span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Viteria per ferro e metalli, legno,plastiche con vari passi,dimensioni e materiali</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Guarniture per tende- interni-</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Maniglie </span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"> </span><a href="http://www.cottali.it/"><span style="background-color: #eeeeee; color: #660000;">Cottali</span></a></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"> </span><a href="http://www.sicma.net/prodotti.htm"><span style="background-color: #eeeeee; color: #660000;">Sicma</span></a></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">Cerchiamo sempre di migliorare l'ambiente dove viviamo ed abbellirlo a nostro</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;">piacere.</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span> <img height="300" src="https://mail.google.com/mail/?attid=0.1&disp=emb&view=att&th=12f0072af19dc91e" width="400" /></div><div id="xplssflyover" style="left: 0px; position: absolute; top: 0px; visibility: hidden; width: 0px; z-index: 12000;"><span style="background-color: #eeeeee;"></span></div><div style="margin-bottom: 0cm;"><br />
<br />
<span style="background-color: #eeeeee;"><script type="text/javascript">
// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;
var shortened_urls = new Array("tinyurl.com","3.ly","bit.ly","tiny.cc","short.to","is.gd","tr.im");
var border_colors = new Array( "#00A120;", "#EAA500;", "#F57301;", "#D20003;" );
var background_colors = new Array( "#C3E5CA;", "#FEEFAE;", "#FFD3B0;", "#F5D4C1;" );
var images = new Array ( "linkscanner://safe12.png", "linkscanner://caution12.png", "linkscanner://warning12.png", "linkscanner://blocked12.png" );
var showCleanVerdicts = true;
var showLowRiskVerdicts = true;
var showMedRiskVerdicts = true;
function avg_ls_does_url_contain(url, contain)
{
if ((url == null) || (url.length < 1))
{
return false;
}
var strUrl = new String(url);
// breakup the url to check
var parts = strUrl.split("/");
if (parts.length < 3)
{
return false;
}
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
{
return true;
}
return false;
}
function avg_ls_valid_gmail_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 4))
return false;
var domain= parts[2];
var path = parts[3];
if ((domain.indexOf("mail.google.") != -1) ||
(domain.indexOf("gmail.") != -1))
{
// save the hostname to use getting links
gAvgHostName = "google.com";
return true;
}
return false;
}
function avg_ls_get_parent_div(element)
{
if ((element == null) || (element.parentNode == null))
return null;
while (element != null)
{
if ((element.tagName == "DIV") && element.className &&
(element.className.length > 0))
return element;
element = element.parentNode;
}
// no div
return null;
}
function avg_ls_parse_ads(href)
{
if (!href)
return href;
// check for google ad
var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 0))
return match
}
return href;
}
function avg_ls_get_gmail_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't mark anything but http://
if (element.href.indexOf("mailto") == 0)
continue;
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") &&
((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
)) // right ads
{
// parse for any ads
var newHref = avg_ls_parse_ads(element.href);
// add the image
avg_ls_check_url(doc, element, newHref);
}
}
}
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
}
}
return links;
}
function avg_ls_valid_facebook_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 2))
return false;
var domain= parts[2];
if (domain.indexOf("www.facebook.com") != -1)
{
// save the hostname to use getting links
gAvgHostName = "www.facebook.com";
return true;
}
return false;
}
function avg_ls_get_facebook_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't put verdicts in areas where typing is going on
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") && (parentDiv.className == "Mentions_Input"))
continue;
}
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
avg_ls_check_url(doc, element, element.href);
}
/*///cbk - take it out for now the home page can't access frameElement
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
if (doc.frames[j].frameElement != null )
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
}
avg_ls_get_facebook_links(doc.frames[j].document, processFrames);
}
}
*///cbk
return links;
}
function avg_ls_has_image(element)
{
if ((element == null) || (element.firstChild == null))
return false;
var nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return true;
nextElem = nextElem.nextSibling;
}
return false;
}
function avg_ls_update_image(doc, element, image )
{
if ((doc == null) || (element == null))
return ;
// mark the element as processed
element.setAttribute("avglschecked", "1");
// if no image, nothing to add
if (image == null)
return;
// update the image
if (element && element.firstChild)
{
image_elem = element.firstChild;
element.firstChild.src = image;
}
}
function avg_ls_add_image(doc, element, image, flyover)
{
if ((doc == null) || (element == null))
return;
// if no image, nothing to add
if (image == null)
return;
// create a new image
var img = doc.createElement("img");
img.src = image;
img.border="0";
img.hspace="5";
img.id = "avg_ls_image";
img.setAttribute("title", "");
// append the image to the link
element.appendChild(img);
img = null;
var newImg = element.lastChild;
if (flyover && newImg && newImg.id == "avg_ls_image")
{
newImg.attachEvent("onmouseover", function() {avg_ls_showinline(newImg, flyover)});
newImg.attachEvent("onmouseout", function() {avg_ls_hideinline()});
}
}
var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_gmail_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}
function avg_ls_monitor_facebook(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_facebook_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_facebook(doc, processFrames);}, 1000);
}
function avg_ls_process_links(doc, processFrames)
{
if (avg_ls_valid_gmail_search(doc.location.href))
{
// process the gmail links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_gmail(doc, processFrames);
}
if (avg_ls_valid_facebook_search(doc.location.href))
{
// process the facebook links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_facebook(doc, processFrames);
}
}
function avg_ls_reload(e)
{
avg_ls_process_links(document, true);
}
function avg_ls_onload(e)
{
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
var doc = document;
// set the event handler for the data element to listen for load/reloads
var data_element = doc.getElementById("avglsdata");
if (data_element)
{
// save data element for use in later iframes
gAvgDataElement = data_element;
// rowexit event used to notify javascript of a page data load
avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
avg_ls_add_event(data_element, "rowexit", avg_ls_reload);
// process links for the document
avg_ls_process_links(doc, true);
}
}
function avg_ls_get_anchors(doc)
{
return doc.getElementsByTagName("a");
}
function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
var avg_ls_data = null;
// get the data element
if (gAvgDataElement == null)
{
avg_ls_data = doc.getElementById("avglsdata");
if ((avg_ls_data == null) || (name == null))
{
// data element does not exist
return;
}
gAvgDataElement = avg_ls_data;
}
else
{
avg_ls_data = gAvgDataElement;
}
// for some reason you can't fire and event on an element with no parent node
if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
{
return;
}
// set the attributes
avg_ls_data.setAttribute("function", name);
if (param1)
avg_ls_data.setAttribute("param1", param1);
if (param2)
avg_ls_data.setAttribute("param2", param2);
if (param3)
avg_ls_data.setAttribute("param3", param3);
if (param4)
avg_ls_data.setAttribute("param4", param4);
if (param5)
avg_ls_data.setAttribute("param5", param5);
avg_ls_data.fireEvent("onrowenter");
// get the result
return avg_ls_data.getAttribute("result");
}
function avg_ls_get_image(result)
{
if ((result == null) || (result.length < 1))
return null;
var strResult = new String(result);
var parts = strResult.split("::");
if (parts.length < 3)
return;
var nSeverity = parseInt(parts[0]);
var image = null;
switch(nSeverity)
{
case 0:
if (showCleanVerdicts)
image = images[nSeverity];
break;
case 1:
if (showLowRiskVerdicts)
image = images[nSeverity];
break;
case 2:
if (showMedRiskVerdicts)
image = images[nSeverity];
break;
case 3:
image = images[nSeverity];
break;
default:
image = "linkscanner://unknown12.gif";
break;
}
return image;
}
// do the url check
function avg_ls_check_url(doc, element, href)
{
if (avg_ls_has_image(element))
return;
var result = avg_ls_call_func(doc, "MalsiteCheck", href);
if (result == null)
return;
var parts = result.split("::");
if (parts.length < 3)
return;
var nSeverity = parts[0];
var riskCategory = parts[1];
var riskName = parts[2];
if ( nSeverity == 0 )
{ // safe shortened urls will get checked at mouse over time
if (avg_ls_filter_url(href, shortened_urls))
{
// add onmouseover for anchors with shortened url
avg_ls_add_event(element, "mouseover", avg_ls_mouse_over);
return;
}
}
// mark as processed
element.setAttribute("avglschecked", "1");
// get the image from the result
var image = avg_ls_get_image(result);
if (image == null)
return;
var bgColor = background_colors[nSeverity];
var borderColor = border_colors[nSeverity];
// build the inline html
var html = "";
html += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>";
html += "<img src=linkscanner://LS_Logo_Results.gif/>
";
html += riskCategory + "
";
html += riskName + "
</div>";
avg_ls_add_image(doc, element, image, html);
}
function avg_ls_add_event(obj, name, func)
{
if (obj.addEventListener)
{
obj.addEventListener(name, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_remove_event(obj, name, func)
{
if (obj.removeEventListener)
{
obj.removeEventListener(name, func, false);
return true;
}
else if (obj.detachEvent)
{
return obj.detachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_mouse_over(e)
{
if (e && e.srcElement && e.srcElement.href)
{
var element = e.srcElement;
if (element.tagName == "A")
{
// check if it has an image already
if (avg_ls_has_image(element))
{
return;
}
// add the image, returns the anchor not the image
avg_ls_add_image(document, element, "linkscanner://clock12.png");
// do the check and update in the background
setTimeout(function() {avg_ls_check_and_update(document, element);}, 1);
}
}
}
function avg_ls_get_inline_image(element)
{
var nextElem = null;
if ((element == null) || (element.firstChild == null))
return nextElem;
nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return nextElem;
nextElem = nextElem.nextSibling;
}
return null;
}
function avg_ls_inline_hide_verdict(anchor)
{
var image = avg_ls_get_inline_image(anchor);
if ( image )
{
image.style.visibility = "hidden";
}
}
function avg_ls_check_and_update(doc, element)
{
var result = avg_ls_call_func(doc, "GetFinalUrl", element.href);
if (result)
{
var result2 = avg_ls_call_func(doc, "MalsiteCheck", result);
if (result2 == null)
return;
// remove the mouseover for this element, no need to fire again
avg_ls_remove_event(element, "mouseover", avg_ls_mouse_over);
// get the image from the result
var image = avg_ls_get_image(result2);
if (image == null)
avg_ls_inline_hide_verdict(element);
else
{
var img_elem = avg_ls_get_inline_image(element);
if (img_elem)
{
img_elem.src = image;
}
}
}
}
// function to find a url in a filter list
function avg_ls_filter_url(url, filter)
{
var strUrl = new String(url);
var parts = strUrl.split("/");
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < filter.length; i++)
{
if (domain.indexOf(filter[i]) != -1)
{
return true;
}
}
return false;
}
function avg_ls_init_ratings(doc)
{
// get configuration for verdict displays
var result = avg_ls_call_func(doc, "GetRatingsConfig");
var strResult = new String(result);
var parts = strResult.split("::");
if (parts != null && parts.length >= 4)
{
showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;
showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;
showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;
}
// setup for displaying the inline popup
if ( !doc.getElementById("avg_ls_inline_popup") )
{
var box = doc.createElement("DIV");
doc.body.appendChild(box);
box.id = "avg_ls_inline_popup";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
}
}
avg_ls_add_event(window, "load", avg_ls_onload);
</script><script type="text/javascript">
/*
--------------------------------------------------------------------------
avg linkscanner inline verdict info popup
--------------------------------------------------------------------------
*/
// write verdict info and display the inline popup
function avg_ls_showinline(imageElem, msg)
{
//set verdict info
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.innerHTML = msg;
flyover.style.width = "auto"; //reset width
flyover.style.position = "absolute";
avg_ls_positioninline(imageElem);
}
function avg_ls_positioninline(imageElem)
{
var flyover = document.getElementById('avg_ls_inline_popup');
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
var scrollXWidth = 19; // approx
// Must know if there is a horizontal scroll bar for Firefox
// for proper flyover positioning near bottom edge
var scrollBarX = false; //default for Microsoft IE
var scrollYWidth = 18; //normally 17 (+1 top border)
if (window.innerHeight)
{ // not MSIE
try
{
scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;
scrollBarX = (document.documentElement.clientWidth < document.documentElement.scrollWidth);
}
catch(err){}
}
// get window sizes
if (window.innerHeight == undefined) // Microsoft IE
{
var windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;
var windowY = document.documentElement.clientHeight || document.body.clientHeight;
}
else
{
var windowX = window.innerWidth - scrollXWidth;
var windowY = window.innerHeight;
if (scrollBarX)
windowY -= scrollYWidth;
}
// get the flyover dimensions
if (window.getComputedStyle == undefined) // Microsoft IE
{
var flyoverX = parseInt(flyover.offsetWidth);
var flyoverY = parseInt(flyover.offsetHeight);
}
else
{
var style = document.defaultView.getComputedStyle(flyover, null);
var flyoverX = parseInt(style.width);
var flyoverY = parseInt(style.height);
}
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 = offsetLeft(imageElem) + halfX;
var posY = offsetTop(imageElem) + halfY;
var pageOffsetX = 0;
var pageOffsetY = 0;
// normalize pos to 0 -- get amount of scrolling in browser window
var hasParentFrame = false;
if (window.pageXOffset == undefined) // Microsoft IE
{
pageOffsetX = document.documentElement.scrollLeft || document.body.scrollLeft;
pageOffsetY = document.documentElement.scrollTop || document.body.scrollLeft;
var frames = document.frames;
if (frames)
{
for (var i=0; i < frames.length; i++)
{
if (frames[i].document.getElementById(imageElem.id))
{
pageOffsetX = frames[i].document.documentElement.scrollLeft;
pageOffsetY = frames[i].document.documentElement.scrollTop;
hasParentFrame = true;
break;
}
}
}
}
else
{
pageOffsetX = window.pageXOffset;
pageOffsetY = window.pageYOffset;
}
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
offsetY = windowY - flyoverY;
// 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 = paddedOffsetX + "px";
avg_ls_displayinline();
}
function avg_ls_displayinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
// show the flyover
flyover.style.visibility = "visible";
}
function avg_ls_hideinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.visibility = "hidden"; //invisible
flyover.style.left = "-5000px";
}
function offsetTop(element)
{
var offset = 0;
while (element)
{
offset += element.offsetTop;
element = element.offsetParent;
}
return offset;
}
function offsetLeft(element)
{
var offset = 0;
while (element)
{
offset += element.offsetLeft;
element = element.offsetParent;
}
return offset;
}
</script></span><br />
<div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"></div></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"></span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><a href="http://www.blogger.com/" name="gt-c"><span style="background-color: #eeeeee;"></span></a></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;">If you need to fix a door of the kitchen, where you going? <br />
I broke the key in the lock, where I find a new one? </span>I am fixing a wooden panel, where I find the mounting system?<span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;"> </span>I need something on which to <strong>hang</strong> the shirt on, yes, hangers, </span><br />
<span style="background-color: #eeeeee;">Where can I find? </span><br />
<span style="background-color: #eeeeee;">The doors creak, what can I use to eliminate the hassle? </span><br />
<span style="background-color: #eeeeee;"><br />
</span><br />
<span style="background-color: #eeeeee;">Yes, yes, I go to hardware stores. </span><br />
<span style="background-color: #eeeeee;"><br />
</span><br />
<span style="background-color: #eeeeee;">You can find answers to your unexpected day in stores, which, in addition </span><br />
<span style="background-color: #eeeeee;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;">to provide the desired items, try to add value by looking </span>answer the requests (eg curtains) by combinations, while </span><br />
<span style="background-color: #eeeeee;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;">to obtain measurements or dimensions of the product displayed in thought. </span>We find the </span><br />
<span style="background-color: #eeeeee;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;">Furniture Fittings<br />
Matches in the book, Anubis, retractable, decorative<br />
</span>(From a jewelry box from cernieretta size</span><br />
<span style="background-color: #eeeeee;"> </span><span style="background-color: #eeeeee;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;">sizes important)<br />
<br />
Flush door hinges for kitchen</span>Wooden doors require a field to itself</span><br />
<span style="background-color: #eeeeee;"> the hinges to hold open, not to mention the hundreds</span><br />
<span style="background-color: #eeeeee;"> <span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;">flush-type lock </span></span></div><div style="margin-bottom: 0cm;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;"><span style="background-color: #eeeeee;"> </span><a href="http://www.utensillegno.it/"><span style="background-color: #eeeeee; color: #660000;">Utensil legno</span></a></span></div><div style="margin-bottom: 0cm;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;"><span style="background-color: #eeeeee;"> </span><a href="http://www.omad.it/"><span style="background-color: #eeeeee; color: #660000;">Omad</span></a></span></div><div style="margin-bottom: 0cm;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;"><span style="background-color: #eeeeee;">Sliding doors, windows, cabinets<br />
</span><a href="http://www.ternoscorrevoli.it/"><span style="background-color: #eeeeee; color: #660000;">Terno scorrevoli</span></a></span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background: #eeeeee;">Decorative media shelf holders, retractable, glass<br />
<br />
Screws for steel and metals, wood, plastics with various pitches, sizes and materials <br />
<br />
Cranksets curtain-internal- </span><br />
<div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background: #eeeeee;">Handles </span></div><div style="margin-bottom: 0cm;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;"><span style="background-color: #eeeeee;"> </span><a href="http://www.cottali.it/"><span style="background-color: #eeeeee; color: #660000;">Cottali </span></a><span style="background-color: #eeeeee;"> </span></span></div><div style="margin-bottom: 0cm;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;"><span style="background-color: #eeeeee;"> </span><a href="http://www.sicma.net/prodotti.htm"><span style="background-color: #eeeeee; color: #660000;">Sicma</span></a></span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;">We always try to improve and beautify the environment we live in our <br />
pleasure</span> </span></div><div style="margin-bottom: 0cm;"><span style="background-color: #eeeeee;"><br />
</span></div></div><br />
<br />
<!-- INIZIO del codice HTML di zanox-affiliato --><br />
<!--(Il codice HTML non deve essere modificato per garantire la assoluta funzionalità)--><br />
<a href="http://ad.zanox.com/ppc/?21100714C381169452T"><img src="http://ad.zanox.com/ppv/?21100714C381169452" align="bottom" width="125" height="125" border="0" hspace="1" alt="Designershop New 125x125 1"></a><br />
<!-- FINE del codice HTML fi zanox affiliato -->Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0tag:blogger.com,1999:blog-4421047768738780888.post-90967606196261177002010-12-31T08:27:00.000-08:002011-03-29T00:20:43.265-07:00Modifiche in casa Changes in home<script type="text/javascript">
<!--
google_ad_client = "pub-7078611829181357";
/* 300x250, creato 06/02/11 */
google_ad_slot = "3906820705";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script><br />
<div style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"></div><img height="300" src="https://mail.google.com/mail/?attid=0.1&disp=emb&view=att&th=12f0071e64969089" width="400" /><script type="text/javascript">
// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;
var shortened_urls = new Array("tinyurl.com","3.ly","bit.ly","tiny.cc","short.to","is.gd","tr.im");
var border_colors = new Array( "#00A120;", "#EAA500;", "#F57301;", "#D20003;" );
var background_colors = new Array( "#C3E5CA;", "#FEEFAE;", "#FFD3B0;", "#F5D4C1;" );
var images = new Array ( "linkscanner://safe12.png", "linkscanner://caution12.png", "linkscanner://warning12.png", "linkscanner://blocked12.png" );
var showCleanVerdicts = true;
var showLowRiskVerdicts = true;
var showMedRiskVerdicts = true;
function avg_ls_does_url_contain(url, contain)
{
if ((url == null) || (url.length < 1))
{
return false;
}
var strUrl = new String(url);
// breakup the url to check
var parts = strUrl.split("/");
if (parts.length < 3)
{
return false;
}
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
{
return true;
}
return false;
}
function avg_ls_valid_gmail_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 4))
return false;
var domain= parts[2];
var path = parts[3];
if ((domain.indexOf("mail.google.") != -1) ||
(domain.indexOf("gmail.") != -1))
{
// save the hostname to use getting links
gAvgHostName = "google.com";
return true;
}
return false;
}
function avg_ls_get_parent_div(element)
{
if ((element == null) || (element.parentNode == null))
return null;
while (element != null)
{
if ((element.tagName == "DIV") && element.className &&
(element.className.length > 0))
return element;
element = element.parentNode;
}
// no div
return null;
}
function avg_ls_parse_ads(href)
{
if (!href)
return href;
// check for google ad
var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 0))
return match
}
return href;
}
function avg_ls_get_gmail_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't mark anything but http://
if (element.href.indexOf("mailto") == 0)
continue;
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") &&
((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
)) // right ads
{
// parse for any ads
var newHref = avg_ls_parse_ads(element.href);
// add the image
avg_ls_check_url(doc, element, newHref);
}
}
}
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
}
}
return links;
}
function avg_ls_valid_facebook_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 2))
return false;
var domain= parts[2];
if (domain.indexOf("www.facebook.com") != -1)
{
// save the hostname to use getting links
gAvgHostName = "www.facebook.com";
return true;
}
return false;
}
function avg_ls_get_facebook_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't put verdicts in areas where typing is going on
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") && (parentDiv.className == "Mentions_Input"))
continue;
}
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
avg_ls_check_url(doc, element, element.href);
}
/*///cbk - take it out for now the home page can't access frameElement
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
if (doc.frames[j].frameElement != null )
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
}
avg_ls_get_facebook_links(doc.frames[j].document, processFrames);
}
}
*///cbk
return links;
}
function avg_ls_has_image(element)
{
if ((element == null) || (element.firstChild == null))
return false;
var nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return true;
nextElem = nextElem.nextSibling;
}
return false;
}
function avg_ls_update_image(doc, element, image )
{
if ((doc == null) || (element == null))
return ;
// mark the element as processed
element.setAttribute("avglschecked", "1");
// if no image, nothing to add
if (image == null)
return;
// update the image
if (element && element.firstChild)
{
image_elem = element.firstChild;
element.firstChild.src = image;
}
}
function avg_ls_add_image(doc, element, image, flyover)
{
if ((doc == null) || (element == null))
return;
// if no image, nothing to add
if (image == null)
return;
// create a new image
var img = doc.createElement("img");
img.src = image;
img.border="0";
img.hspace="5";
img.id = "avg_ls_image";
img.setAttribute("title", "");
// append the image to the link
element.appendChild(img);
img = null;
var newImg = element.lastChild;
if (flyover && newImg && newImg.id == "avg_ls_image")
{
newImg.attachEvent("onmouseover", function() {avg_ls_showinline(newImg, flyover)});
newImg.attachEvent("onmouseout", function() {avg_ls_hideinline()});
}
}
var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_gmail_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}
function avg_ls_monitor_facebook(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_facebook_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_facebook(doc, processFrames);}, 1000);
}
function avg_ls_process_links(doc, processFrames)
{
if (avg_ls_valid_gmail_search(doc.location.href))
{
// process the gmail links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_gmail(doc, processFrames);
}
if (avg_ls_valid_facebook_search(doc.location.href))
{
// process the facebook links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_facebook(doc, processFrames);
}
}
function avg_ls_reload(e)
{
avg_ls_process_links(document, true);
}
function avg_ls_onload(e)
{
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
var doc = document;
// set the event handler for the data element to listen for load/reloads
var data_element = doc.getElementById("avglsdata");
if (data_element)
{
// save data element for use in later iframes
gAvgDataElement = data_element;
// rowexit event used to notify javascript of a page data load
avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
avg_ls_add_event(data_element, "rowexit", avg_ls_reload);
// process links for the document
avg_ls_process_links(doc, true);
}
}
function avg_ls_get_anchors(doc)
{
return doc.getElementsByTagName("a");
}
function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
var avg_ls_data = null;
// get the data element
if (gAvgDataElement == null)
{
avg_ls_data = doc.getElementById("avglsdata");
if ((avg_ls_data == null) || (name == null))
{
// data element does not exist
return;
}
gAvgDataElement = avg_ls_data;
}
else
{
avg_ls_data = gAvgDataElement;
}
// for some reason you can't fire and event on an element with no parent node
if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
{
return;
}
// set the attributes
avg_ls_data.setAttribute("function", name);
if (param1)
avg_ls_data.setAttribute("param1", param1);
if (param2)
avg_ls_data.setAttribute("param2", param2);
if (param3)
avg_ls_data.setAttribute("param3", param3);
if (param4)
avg_ls_data.setAttribute("param4", param4);
if (param5)
avg_ls_data.setAttribute("param5", param5);
avg_ls_data.fireEvent("onrowenter");
// get the result
return avg_ls_data.getAttribute("result");
}
function avg_ls_get_image(result)
{
if ((result == null) || (result.length < 1))
return null;
var strResult = new String(result);
var parts = strResult.split("::");
if (parts.length < 3)
return;
var nSeverity = parseInt(parts[0]);
var image = null;
switch(nSeverity)
{
case 0:
if (showCleanVerdicts)
image = images[nSeverity];
break;
case 1:
if (showLowRiskVerdicts)
image = images[nSeverity];
break;
case 2:
if (showMedRiskVerdicts)
image = images[nSeverity];
break;
case 3:
image = images[nSeverity];
break;
default:
image = "linkscanner://unknown12.gif";
break;
}
return image;
}
// do the url check
function avg_ls_check_url(doc, element, href)
{
if (avg_ls_has_image(element))
return;
var result = avg_ls_call_func(doc, "MalsiteCheck", href);
if (result == null)
return;
var parts = result.split("::");
if (parts.length < 3)
return;
var nSeverity = parts[0];
var riskCategory = parts[1];
var riskName = parts[2];
if ( nSeverity == 0 )
{ // safe shortened urls will get checked at mouse over time
if (avg_ls_filter_url(href, shortened_urls))
{
// add onmouseover for anchors with shortened url
avg_ls_add_event(element, "mouseover", avg_ls_mouse_over);
return;
}
}
// mark as processed
element.setAttribute("avglschecked", "1");
// get the image from the result
var image = avg_ls_get_image(result);
if (image == null)
return;
var bgColor = background_colors[nSeverity];
var borderColor = border_colors[nSeverity];
// build the inline html
var html = "";
html += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>";
html += "<img src=linkscanner://LS_Logo_Results.gif/>
";
html += riskCategory + "
";
html += riskName + "
</div>";
avg_ls_add_image(doc, element, image, html);
}
function avg_ls_add_event(obj, name, func)
{
if (obj.addEventListener)
{
obj.addEventListener(name, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_remove_event(obj, name, func)
{
if (obj.removeEventListener)
{
obj.removeEventListener(name, func, false);
return true;
}
else if (obj.detachEvent)
{
return obj.detachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_mouse_over(e)
{
if (e && e.srcElement && e.srcElement.href)
{
var element = e.srcElement;
if (element.tagName == "A")
{
// check if it has an image already
if (avg_ls_has_image(element))
{
return;
}
// add the image, returns the anchor not the image
avg_ls_add_image(document, element, "linkscanner://clock12.png");
// do the check and update in the background
setTimeout(function() {avg_ls_check_and_update(document, element);}, 1);
}
}
}
function avg_ls_get_inline_image(element)
{
var nextElem = null;
if ((element == null) || (element.firstChild == null))
return nextElem;
nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return nextElem;
nextElem = nextElem.nextSibling;
}
return null;
}
function avg_ls_inline_hide_verdict(anchor)
{
var image = avg_ls_get_inline_image(anchor);
if ( image )
{
image.style.visibility = "hidden";
}
}
function avg_ls_check_and_update(doc, element)
{
var result = avg_ls_call_func(doc, "GetFinalUrl", element.href);
if (result)
{
var result2 = avg_ls_call_func(doc, "MalsiteCheck", result);
if (result2 == null)
return;
// remove the mouseover for this element, no need to fire again
avg_ls_remove_event(element, "mouseover", avg_ls_mouse_over);
// get the image from the result
var image = avg_ls_get_image(result2);
if (image == null)
avg_ls_inline_hide_verdict(element);
else
{
var img_elem = avg_ls_get_inline_image(element);
if (img_elem)
{
img_elem.src = image;
}
}
}
}
// function to find a url in a filter list
function avg_ls_filter_url(url, filter)
{
var strUrl = new String(url);
var parts = strUrl.split("/");
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < filter.length; i++)
{
if (domain.indexOf(filter[i]) != -1)
{
return true;
}
}
return false;
}
function avg_ls_init_ratings(doc)
{
// get configuration for verdict displays
var result = avg_ls_call_func(doc, "GetRatingsConfig");
var strResult = new String(result);
var parts = strResult.split("::");
if (parts != null && parts.length >= 4)
{
showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;
showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;
showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;
}
// setup for displaying the inline popup
if ( !doc.getElementById("avg_ls_inline_popup") )
{
var box = doc.createElement("DIV");
doc.body.appendChild(box);
box.id = "avg_ls_inline_popup";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
}
}
avg_ls_add_event(window, "load", avg_ls_onload);
</script><script type="text/javascript">
/*
--------------------------------------------------------------------------
avg linkscanner inline verdict info popup
--------------------------------------------------------------------------
*/
// write verdict info and display the inline popup
function avg_ls_showinline(imageElem, msg)
{
//set verdict info
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.innerHTML = msg;
flyover.style.width = "auto"; //reset width
flyover.style.position = "absolute";
avg_ls_positioninline(imageElem);
}
function avg_ls_positioninline(imageElem)
{
var flyover = document.getElementById('avg_ls_inline_popup');
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
var scrollXWidth = 19; // approx
// Must know if there is a horizontal scroll bar for Firefox
// for proper flyover positioning near bottom edge
var scrollBarX = false; //default for Microsoft IE
var scrollYWidth = 18; //normally 17 (+1 top border)
if (window.innerHeight)
{ // not MSIE
try
{
scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;
scrollBarX = (document.documentElement.clientWidth < document.documentElement.scrollWidth);
}
catch(err){}
}
// get window sizes
if (window.innerHeight == undefined) // Microsoft IE
{
var windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;
var windowY = document.documentElement.clientHeight || document.body.clientHeight;
}
else
{
var windowX = window.innerWidth - scrollXWidth;
var windowY = window.innerHeight;
if (scrollBarX)
windowY -= scrollYWidth;
}
// get the flyover dimensions
if (window.getComputedStyle == undefined) // Microsoft IE
{
var flyoverX = parseInt(flyover.offsetWidth);
var flyoverY = parseInt(flyover.offsetHeight);
}
else
{
var style = document.defaultView.getComputedStyle(flyover, null);
var flyoverX = parseInt(style.width);
var flyoverY = parseInt(style.height);
}
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 = offsetLeft(imageElem) + halfX;
var posY = offsetTop(imageElem) + halfY;
var pageOffsetX = 0;
var pageOffsetY = 0;
// normalize pos to 0 -- get amount of scrolling in browser window
var hasParentFrame = false;
if (window.pageXOffset == undefined) // Microsoft IE
{
pageOffsetX = document.documentElement.scrollLeft || document.body.scrollLeft;
pageOffsetY = document.documentElement.scrollTop || document.body.scrollLeft;
var frames = document.frames;
if (frames)
{
for (var i=0; i < frames.length; i++)
{
if (frames[i].document.getElementById(imageElem.id))
{
pageOffsetX = frames[i].document.documentElement.scrollLeft;
pageOffsetY = frames[i].document.documentElement.scrollTop;
hasParentFrame = true;
break;
}
}
}
}
else
{
pageOffsetX = window.pageXOffset;
pageOffsetY = window.pageYOffset;
}
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
offsetY = windowY - flyoverY;
// 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 = paddedOffsetX + "px";
avg_ls_displayinline();
}
function avg_ls_displayinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
// show the flyover
flyover.style.visibility = "visible";
}
function avg_ls_hideinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.visibility = "hidden"; //invisible
flyover.style.left = "-5000px";
}
function offsetTop(element)
{
var offset = 0;
while (element)
{
offset += element.offsetTop;
element = element.offsetParent;
}
return offset;
}
function offsetLeft(element)
{
var offset = 0;
while (element)
{
offset += element.offsetLeft;
element = element.offsetParent;
}
return offset;
}
</script> <br />
<div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"></div><br />
<br />
<div style="margin-bottom: 0cm;"><br />
<div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"></div></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;">Siamo ON LINE, anche noi.</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;">Breve presentazione di una<a href="mailto:hobbyferramenta@gmail.com"> ferramenta</a> che si stà spingendo fra gruppi grossi in distribuzione,</div><div style="margin-bottom: 0cm;">proponendo soluzioni a privati, artigiani e aziende nel mondo degli articoli per interni</div><div style="margin-bottom: 0cm;">Tutti sanno cosa significa avere una casa accogliente e personalizzata. Noi siamo in questa</div><div style="margin-bottom: 0cm;">nicchia.</div><div style="margin-bottom: 0cm;">Oltre al programma di articoli ferramenta in produzione e reperibile sul mercato, cerchiamo </div><div style="margin-bottom: 0cm;">di offrire di più.</div><div style="margin-bottom: 0cm;">A partire dalle informazioni, cerchiamo di capire il desiderio di una persona e l'applicazione</div><div style="margin-bottom: 0cm;">tecnico-economica più conveniente.</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><img height="300" src="https://mail.google.com/mail/?attid=0.1&disp=emb&view=att&th=12f00718bbbb1a0b" width="400" /><script type="text/javascript">
// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;
var shortened_urls = new Array("tinyurl.com","3.ly","bit.ly","tiny.cc","short.to","is.gd","tr.im");
var border_colors = new Array( "#00A120;", "#EAA500;", "#F57301;", "#D20003;" );
var background_colors = new Array( "#C3E5CA;", "#FEEFAE;", "#FFD3B0;", "#F5D4C1;" );
var images = new Array ( "linkscanner://safe12.png", "linkscanner://caution12.png", "linkscanner://warning12.png", "linkscanner://blocked12.png" );
var showCleanVerdicts = true;
var showLowRiskVerdicts = true;
var showMedRiskVerdicts = true;
function avg_ls_does_url_contain(url, contain)
{
if ((url == null) || (url.length < 1))
{
return false;
}
var strUrl = new String(url);
// breakup the url to check
var parts = strUrl.split("/");
if (parts.length < 3)
{
return false;
}
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
{
return true;
}
return false;
}
function avg_ls_valid_gmail_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 4))
return false;
var domain= parts[2];
var path = parts[3];
if ((domain.indexOf("mail.google.") != -1) ||
(domain.indexOf("gmail.") != -1))
{
// save the hostname to use getting links
gAvgHostName = "google.com";
return true;
}
return false;
}
function avg_ls_get_parent_div(element)
{
if ((element == null) || (element.parentNode == null))
return null;
while (element != null)
{
if ((element.tagName == "DIV") && element.className &&
(element.className.length > 0))
return element;
element = element.parentNode;
}
// no div
return null;
}
function avg_ls_parse_ads(href)
{
if (!href)
return href;
// check for google ad
var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 0))
return match
}
return href;
}
function avg_ls_get_gmail_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't mark anything but http://
if (element.href.indexOf("mailto") == 0)
continue;
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") &&
((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
)) // right ads
{
// parse for any ads
var newHref = avg_ls_parse_ads(element.href);
// add the image
avg_ls_check_url(doc, element, newHref);
}
}
}
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
}
}
return links;
}
function avg_ls_valid_facebook_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 2))
return false;
var domain= parts[2];
if (domain.indexOf("www.facebook.com") != -1)
{
// save the hostname to use getting links
gAvgHostName = "www.facebook.com";
return true;
}
return false;
}
function avg_ls_get_facebook_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't put verdicts in areas where typing is going on
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") && (parentDiv.className == "Mentions_Input"))
continue;
}
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
avg_ls_check_url(doc, element, element.href);
}
/*///cbk - take it out for now the home page can't access frameElement
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
if (doc.frames[j].frameElement != null )
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
}
avg_ls_get_facebook_links(doc.frames[j].document, processFrames);
}
}
*///cbk
return links;
}
function avg_ls_has_image(element)
{
if ((element == null) || (element.firstChild == null))
return false;
var nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return true;
nextElem = nextElem.nextSibling;
}
return false;
}
function avg_ls_update_image(doc, element, image )
{
if ((doc == null) || (element == null))
return ;
// mark the element as processed
element.setAttribute("avglschecked", "1");
// if no image, nothing to add
if (image == null)
return;
// update the image
if (element && element.firstChild)
{
image_elem = element.firstChild;
element.firstChild.src = image;
}
}
function avg_ls_add_image(doc, element, image, flyover)
{
if ((doc == null) || (element == null))
return;
// if no image, nothing to add
if (image == null)
return;
// create a new image
var img = doc.createElement("img");
img.src = image;
img.border="0";
img.hspace="5";
img.id = "avg_ls_image";
img.setAttribute("title", "");
// append the image to the link
element.appendChild(img);
img = null;
var newImg = element.lastChild;
if (flyover && newImg && newImg.id == "avg_ls_image")
{
newImg.attachEvent("onmouseover", function() {avg_ls_showinline(newImg, flyover)});
newImg.attachEvent("onmouseout", function() {avg_ls_hideinline()});
}
}
var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_gmail_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}
function avg_ls_monitor_facebook(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_facebook_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_facebook(doc, processFrames);}, 1000);
}
function avg_ls_process_links(doc, processFrames)
{
if (avg_ls_valid_gmail_search(doc.location.href))
{
// process the gmail links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_gmail(doc, processFrames);
}
if (avg_ls_valid_facebook_search(doc.location.href))
{
// process the facebook links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_facebook(doc, processFrames);
}
}
function avg_ls_reload(e)
{
avg_ls_process_links(document, true);
}
function avg_ls_onload(e)
{
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
var doc = document;
// set the event handler for the data element to listen for load/reloads
var data_element = doc.getElementById("avglsdata");
if (data_element)
{
// save data element for use in later iframes
gAvgDataElement = data_element;
// rowexit event used to notify javascript of a page data load
avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
avg_ls_add_event(data_element, "rowexit", avg_ls_reload);
// process links for the document
avg_ls_process_links(doc, true);
}
}
function avg_ls_get_anchors(doc)
{
return doc.getElementsByTagName("a");
}
function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
var avg_ls_data = null;
// get the data element
if (gAvgDataElement == null)
{
avg_ls_data = doc.getElementById("avglsdata");
if ((avg_ls_data == null) || (name == null))
{
// data element does not exist
return;
}
gAvgDataElement = avg_ls_data;
}
else
{
avg_ls_data = gAvgDataElement;
}
// for some reason you can't fire and event on an element with no parent node
if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
{
return;
}
// set the attributes
avg_ls_data.setAttribute("function", name);
if (param1)
avg_ls_data.setAttribute("param1", param1);
if (param2)
avg_ls_data.setAttribute("param2", param2);
if (param3)
avg_ls_data.setAttribute("param3", param3);
if (param4)
avg_ls_data.setAttribute("param4", param4);
if (param5)
avg_ls_data.setAttribute("param5", param5);
avg_ls_data.fireEvent("onrowenter");
// get the result
return avg_ls_data.getAttribute("result");
}
function avg_ls_get_image(result)
{
if ((result == null) || (result.length < 1))
return null;
var strResult = new String(result);
var parts = strResult.split("::");
if (parts.length < 3)
return;
var nSeverity = parseInt(parts[0]);
var image = null;
switch(nSeverity)
{
case 0:
if (showCleanVerdicts)
image = images[nSeverity];
break;
case 1:
if (showLowRiskVerdicts)
image = images[nSeverity];
break;
case 2:
if (showMedRiskVerdicts)
image = images[nSeverity];
break;
case 3:
image = images[nSeverity];
break;
default:
image = "linkscanner://unknown12.gif";
break;
}
return image;
}
// do the url check
function avg_ls_check_url(doc, element, href)
{
if (avg_ls_has_image(element))
return;
var result = avg_ls_call_func(doc, "MalsiteCheck", href);
if (result == null)
return;
var parts = result.split("::");
if (parts.length < 3)
return;
var nSeverity = parts[0];
var riskCategory = parts[1];
var riskName = parts[2];
if ( nSeverity == 0 )
{ // safe shortened urls will get checked at mouse over time
if (avg_ls_filter_url(href, shortened_urls))
{
// add onmouseover for anchors with shortened url
avg_ls_add_event(element, "mouseover", avg_ls_mouse_over);
return;
}
}
// mark as processed
element.setAttribute("avglschecked", "1");
// get the image from the result
var image = avg_ls_get_image(result);
if (image == null)
return;
var bgColor = background_colors[nSeverity];
var borderColor = border_colors[nSeverity];
// build the inline html
var html = "";
html += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>";
html += "<img src=linkscanner://LS_Logo_Results.gif/>
";
html += riskCategory + "
";
html += riskName + "
</div>";
avg_ls_add_image(doc, element, image, html);
}
function avg_ls_add_event(obj, name, func)
{
if (obj.addEventListener)
{
obj.addEventListener(name, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_remove_event(obj, name, func)
{
if (obj.removeEventListener)
{
obj.removeEventListener(name, func, false);
return true;
}
else if (obj.detachEvent)
{
return obj.detachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_mouse_over(e)
{
if (e && e.srcElement && e.srcElement.href)
{
var element = e.srcElement;
if (element.tagName == "A")
{
// check if it has an image already
if (avg_ls_has_image(element))
{
return;
}
// add the image, returns the anchor not the image
avg_ls_add_image(document, element, "linkscanner://clock12.png");
// do the check and update in the background
setTimeout(function() {avg_ls_check_and_update(document, element);}, 1);
}
}
}
function avg_ls_get_inline_image(element)
{
var nextElem = null;
if ((element == null) || (element.firstChild == null))
return nextElem;
nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return nextElem;
nextElem = nextElem.nextSibling;
}
return null;
}
function avg_ls_inline_hide_verdict(anchor)
{
var image = avg_ls_get_inline_image(anchor);
if ( image )
{
image.style.visibility = "hidden";
}
}
function avg_ls_check_and_update(doc, element)
{
var result = avg_ls_call_func(doc, "GetFinalUrl", element.href);
if (result)
{
var result2 = avg_ls_call_func(doc, "MalsiteCheck", result);
if (result2 == null)
return;
// remove the mouseover for this element, no need to fire again
avg_ls_remove_event(element, "mouseover", avg_ls_mouse_over);
// get the image from the result
var image = avg_ls_get_image(result2);
if (image == null)
avg_ls_inline_hide_verdict(element);
else
{
var img_elem = avg_ls_get_inline_image(element);
if (img_elem)
{
img_elem.src = image;
}
}
}
}
// function to find a url in a filter list
function avg_ls_filter_url(url, filter)
{
var strUrl = new String(url);
var parts = strUrl.split("/");
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < filter.length; i++)
{
if (domain.indexOf(filter[i]) != -1)
{
return true;
}
}
return false;
}
function avg_ls_init_ratings(doc)
{
// get configuration for verdict displays
var result = avg_ls_call_func(doc, "GetRatingsConfig");
var strResult = new String(result);
var parts = strResult.split("::");
if (parts != null && parts.length >= 4)
{
showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;
showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;
showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;
}
// setup for displaying the inline popup
if ( !doc.getElementById("avg_ls_inline_popup") )
{
var box = doc.createElement("DIV");
doc.body.appendChild(box);
box.id = "avg_ls_inline_popup";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
}
}
avg_ls_add_event(window, "load", avg_ls_onload);
</script><script type="text/javascript">
/*
--------------------------------------------------------------------------
avg linkscanner inline verdict info popup
--------------------------------------------------------------------------
*/
// write verdict info and display the inline popup
function avg_ls_showinline(imageElem, msg)
{
//set verdict info
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.innerHTML = msg;
flyover.style.width = "auto"; //reset width
flyover.style.position = "absolute";
avg_ls_positioninline(imageElem);
}
function avg_ls_positioninline(imageElem)
{
var flyover = document.getElementById('avg_ls_inline_popup');
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
var scrollXWidth = 19; // approx
// Must know if there is a horizontal scroll bar for Firefox
// for proper flyover positioning near bottom edge
var scrollBarX = false; //default for Microsoft IE
var scrollYWidth = 18; //normally 17 (+1 top border)
if (window.innerHeight)
{ // not MSIE
try
{
scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;
scrollBarX = (document.documentElement.clientWidth < document.documentElement.scrollWidth);
}
catch(err){}
}
// get window sizes
if (window.innerHeight == undefined) // Microsoft IE
{
var windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;
var windowY = document.documentElement.clientHeight || document.body.clientHeight;
}
else
{
var windowX = window.innerWidth - scrollXWidth;
var windowY = window.innerHeight;
if (scrollBarX)
windowY -= scrollYWidth;
}
// get the flyover dimensions
if (window.getComputedStyle == undefined) // Microsoft IE
{
var flyoverX = parseInt(flyover.offsetWidth);
var flyoverY = parseInt(flyover.offsetHeight);
}
else
{
var style = document.defaultView.getComputedStyle(flyover, null);
var flyoverX = parseInt(style.width);
var flyoverY = parseInt(style.height);
}
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 = offsetLeft(imageElem) + halfX;
var posY = offsetTop(imageElem) + halfY;
var pageOffsetX = 0;
var pageOffsetY = 0;
// normalize pos to 0 -- get amount of scrolling in browser window
var hasParentFrame = false;
if (window.pageXOffset == undefined) // Microsoft IE
{
pageOffsetX = document.documentElement.scrollLeft || document.body.scrollLeft;
pageOffsetY = document.documentElement.scrollTop || document.body.scrollLeft;
var frames = document.frames;
if (frames)
{
for (var i=0; i < frames.length; i++)
{
if (frames[i].document.getElementById(imageElem.id))
{
pageOffsetX = frames[i].document.documentElement.scrollLeft;
pageOffsetY = frames[i].document.documentElement.scrollTop;
hasParentFrame = true;
break;
}
}
}
}
else
{
pageOffsetX = window.pageXOffset;
pageOffsetY = window.pageYOffset;
}
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
offsetY = windowY - flyoverY;
// 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 = paddedOffsetX + "px";
avg_ls_displayinline();
}
function avg_ls_displayinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
// show the flyover
flyover.style.visibility = "visible";
}
function avg_ls_hideinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.visibility = "hidden"; //invisible
flyover.style.left = "-5000px";
}
function offsetTop(element)
{
var offset = 0;
while (element)
{
offset += element.offsetTop;
element = element.offsetParent;
}
return offset;
}
function offsetLeft(element)
{
var offset = 0;
while (element)
{
offset += element.offsetLeft;
element = element.offsetParent;
}
return offset;
}
</script> <br />
<div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"></div><br />
</div><div style="margin-bottom: 0cm;"></div><div style="margin-bottom: 0cm;">Il punto di forza è: articoli maniglieria in metalli pregiati (ottone,bronzo,inox e alluminio)</div><div style="margin-bottom: 0cm;">per interni che difficile trovare sul mercato in più, siamo supportati da</div><div style="margin-bottom: 0cm;">una fonderia per pezzi unici</div><div style="margin-bottom: 0cm;">Diamo la possibilità di ricevere, (ad esempio supporti tende, sezionati su misura) il quantitativo</div><div style="margin-bottom: 0cm;">richiesto, dimensioni e applicazioni con varianti richieste.</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;">I nostri settori trattati sono: Accessori per mobili</div><div style="margin-bottom: 0cm;"> Viteria</div><div style="margin-bottom: 0cm;"> Guarniture per tende interni</div><div style="margin-bottom: 0cm;"> e la Maniglieria </div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;">che oltre le linee commerciali, spaziamo con articoli a richiesta, con adirittura coppie articoli su misura.</div><div style="margin-bottom: 0cm;">Nell'acquisto di una <a href="http://www.riparacasa.blogspot.com/">maniglia</a>, bisogna per forza seguire delle regole sulle dimensioni tecniche</div><div style="margin-bottom: 0cm;">ed in un secondo momento si cerca di trovare l'articolo che più piace, per non andare aquistare</div><div style="margin-bottom: 0cm;">un pezzo con un desing unico, ma che non è possibile utilizzare. </div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;">Abbiamo scelto questa strada di marketing, non solamente per fornire articoli,ma anche</div><div style="margin-bottom: 0cm;">dare spiegazioni, informazioni e sistemi di montaggio, ed anche ricevere scambi di idee,</div><div style="margin-bottom: 0cm;">novità.</div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><img src="https://mail.google.com/mail/?attid=0.1&disp=emb&view=att&th=12f0072281fcab96" /><script type="text/javascript">
// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;
var shortened_urls = new Array("tinyurl.com","3.ly","bit.ly","tiny.cc","short.to","is.gd","tr.im");
var border_colors = new Array( "#00A120;", "#EAA500;", "#F57301;", "#D20003;" );
var background_colors = new Array( "#C3E5CA;", "#FEEFAE;", "#FFD3B0;", "#F5D4C1;" );
var images = new Array ( "linkscanner://safe12.png", "linkscanner://caution12.png", "linkscanner://warning12.png", "linkscanner://blocked12.png" );
var showCleanVerdicts = true;
var showLowRiskVerdicts = true;
var showMedRiskVerdicts = true;
function avg_ls_does_url_contain(url, contain)
{
if ((url == null) || (url.length < 1))
{
return false;
}
var strUrl = new String(url);
// breakup the url to check
var parts = strUrl.split("/");
if (parts.length < 3)
{
return false;
}
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
{
return true;
}
return false;
}
function avg_ls_valid_gmail_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 4))
return false;
var domain= parts[2];
var path = parts[3];
if ((domain.indexOf("mail.google.") != -1) ||
(domain.indexOf("gmail.") != -1))
{
// save the hostname to use getting links
gAvgHostName = "google.com";
return true;
}
return false;
}
function avg_ls_get_parent_div(element)
{
if ((element == null) || (element.parentNode == null))
return null;
while (element != null)
{
if ((element.tagName == "DIV") && element.className &&
(element.className.length > 0))
return element;
element = element.parentNode;
}
// no div
return null;
}
function avg_ls_parse_ads(href)
{
if (!href)
return href;
// check for google ad
var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 0))
return match
}
return href;
}
function avg_ls_get_gmail_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't mark anything but http://
if (element.href.indexOf("mailto") == 0)
continue;
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") &&
((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
)) // right ads
{
// parse for any ads
var newHref = avg_ls_parse_ads(element.href);
// add the image
avg_ls_check_url(doc, element, newHref);
}
}
}
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
}
}
return links;
}
function avg_ls_valid_facebook_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 2))
return false;
var domain= parts[2];
if (domain.indexOf("www.facebook.com") != -1)
{
// save the hostname to use getting links
gAvgHostName = "www.facebook.com";
return true;
}
return false;
}
function avg_ls_get_facebook_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't put verdicts in areas where typing is going on
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") && (parentDiv.className == "Mentions_Input"))
continue;
}
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
avg_ls_check_url(doc, element, element.href);
}
/*///cbk - take it out for now the home page can't access frameElement
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
if (doc.frames[j].frameElement != null )
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
}
avg_ls_get_facebook_links(doc.frames[j].document, processFrames);
}
}
*///cbk
return links;
}
function avg_ls_has_image(element)
{
if ((element == null) || (element.firstChild == null))
return false;
var nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return true;
nextElem = nextElem.nextSibling;
}
return false;
}
function avg_ls_update_image(doc, element, image )
{
if ((doc == null) || (element == null))
return ;
// mark the element as processed
element.setAttribute("avglschecked", "1");
// if no image, nothing to add
if (image == null)
return;
// update the image
if (element && element.firstChild)
{
image_elem = element.firstChild;
element.firstChild.src = image;
}
}
function avg_ls_add_image(doc, element, image, flyover)
{
if ((doc == null) || (element == null))
return;
// if no image, nothing to add
if (image == null)
return;
// create a new image
var img = doc.createElement("img");
img.src = image;
img.border="0";
img.hspace="5";
img.id = "avg_ls_image";
img.setAttribute("title", "");
// append the image to the link
element.appendChild(img);
img = null;
var newImg = element.lastChild;
if (flyover && newImg && newImg.id == "avg_ls_image")
{
newImg.attachEvent("onmouseover", function() {avg_ls_showinline(newImg, flyover)});
newImg.attachEvent("onmouseout", function() {avg_ls_hideinline()});
}
}
var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_gmail_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}
function avg_ls_monitor_facebook(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_facebook_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_facebook(doc, processFrames);}, 1000);
}
function avg_ls_process_links(doc, processFrames)
{
if (avg_ls_valid_gmail_search(doc.location.href))
{
// process the gmail links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_gmail(doc, processFrames);
}
if (avg_ls_valid_facebook_search(doc.location.href))
{
// process the facebook links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_facebook(doc, processFrames);
}
}
function avg_ls_reload(e)
{
avg_ls_process_links(document, true);
}
function avg_ls_onload(e)
{
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
var doc = document;
// set the event handler for the data element to listen for load/reloads
var data_element = doc.getElementById("avglsdata");
if (data_element)
{
// save data element for use in later iframes
gAvgDataElement = data_element;
// rowexit event used to notify javascript of a page data load
avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
avg_ls_add_event(data_element, "rowexit", avg_ls_reload);
// process links for the document
avg_ls_process_links(doc, true);
}
}
function avg_ls_get_anchors(doc)
{
return doc.getElementsByTagName("a");
}
function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
var avg_ls_data = null;
// get the data element
if (gAvgDataElement == null)
{
avg_ls_data = doc.getElementById("avglsdata");
if ((avg_ls_data == null) || (name == null))
{
// data element does not exist
return;
}
gAvgDataElement = avg_ls_data;
}
else
{
avg_ls_data = gAvgDataElement;
}
// for some reason you can't fire and event on an element with no parent node
if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
{
return;
}
// set the attributes
avg_ls_data.setAttribute("function", name);
if (param1)
avg_ls_data.setAttribute("param1", param1);
if (param2)
avg_ls_data.setAttribute("param2", param2);
if (param3)
avg_ls_data.setAttribute("param3", param3);
if (param4)
avg_ls_data.setAttribute("param4", param4);
if (param5)
avg_ls_data.setAttribute("param5", param5);
avg_ls_data.fireEvent("onrowenter");
// get the result
return avg_ls_data.getAttribute("result");
}
function avg_ls_get_image(result)
{
if ((result == null) || (result.length < 1))
return null;
var strResult = new String(result);
var parts = strResult.split("::");
if (parts.length < 3)
return;
var nSeverity = parseInt(parts[0]);
var image = null;
switch(nSeverity)
{
case 0:
if (showCleanVerdicts)
image = images[nSeverity];
break;
case 1:
if (showLowRiskVerdicts)
image = images[nSeverity];
break;
case 2:
if (showMedRiskVerdicts)
image = images[nSeverity];
break;
case 3:
image = images[nSeverity];
break;
default:
image = "linkscanner://unknown12.gif";
break;
}
return image;
}
// do the url check
function avg_ls_check_url(doc, element, href)
{
if (avg_ls_has_image(element))
return;
var result = avg_ls_call_func(doc, "MalsiteCheck", href);
if (result == null)
return;
var parts = result.split("::");
if (parts.length < 3)
return;
var nSeverity = parts[0];
var riskCategory = parts[1];
var riskName = parts[2];
if ( nSeverity == 0 )
{ // safe shortened urls will get checked at mouse over time
if (avg_ls_filter_url(href, shortened_urls))
{
// add onmouseover for anchors with shortened url
avg_ls_add_event(element, "mouseover", avg_ls_mouse_over);
return;
}
}
// mark as processed
element.setAttribute("avglschecked", "1");
// get the image from the result
var image = avg_ls_get_image(result);
if (image == null)
return;
var bgColor = background_colors[nSeverity];
var borderColor = border_colors[nSeverity];
// build the inline html
var html = "";
html += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>";
html += "<img src=linkscanner://LS_Logo_Results.gif/>
";
html += riskCategory + "
";
html += riskName + "
</div>";
avg_ls_add_image(doc, element, image, html);
}
function avg_ls_add_event(obj, name, func)
{
if (obj.addEventListener)
{
obj.addEventListener(name, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_remove_event(obj, name, func)
{
if (obj.removeEventListener)
{
obj.removeEventListener(name, func, false);
return true;
}
else if (obj.detachEvent)
{
return obj.detachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_mouse_over(e)
{
if (e && e.srcElement && e.srcElement.href)
{
var element = e.srcElement;
if (element.tagName == "A")
{
// check if it has an image already
if (avg_ls_has_image(element))
{
return;
}
// add the image, returns the anchor not the image
avg_ls_add_image(document, element, "linkscanner://clock12.png");
// do the check and update in the background
setTimeout(function() {avg_ls_check_and_update(document, element);}, 1);
}
}
}
function avg_ls_get_inline_image(element)
{
var nextElem = null;
if ((element == null) || (element.firstChild == null))
return nextElem;
nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return nextElem;
nextElem = nextElem.nextSibling;
}
return null;
}
function avg_ls_inline_hide_verdict(anchor)
{
var image = avg_ls_get_inline_image(anchor);
if ( image )
{
image.style.visibility = "hidden";
}
}
function avg_ls_check_and_update(doc, element)
{
var result = avg_ls_call_func(doc, "GetFinalUrl", element.href);
if (result)
{
var result2 = avg_ls_call_func(doc, "MalsiteCheck", result);
if (result2 == null)
return;
// remove the mouseover for this element, no need to fire again
avg_ls_remove_event(element, "mouseover", avg_ls_mouse_over);
// get the image from the result
var image = avg_ls_get_image(result2);
if (image == null)
avg_ls_inline_hide_verdict(element);
else
{
var img_elem = avg_ls_get_inline_image(element);
if (img_elem)
{
img_elem.src = image;
}
}
}
}
// function to find a url in a filter list
function avg_ls_filter_url(url, filter)
{
var strUrl = new String(url);
var parts = strUrl.split("/");
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < filter.length; i++)
{
if (domain.indexOf(filter[i]) != -1)
{
return true;
}
}
return false;
}
function avg_ls_init_ratings(doc)
{
// get configuration for verdict displays
var result = avg_ls_call_func(doc, "GetRatingsConfig");
var strResult = new String(result);
var parts = strResult.split("::");
if (parts != null && parts.length >= 4)
{
showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;
showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;
showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;
}
// setup for displaying the inline popup
if ( !doc.getElementById("avg_ls_inline_popup") )
{
var box = doc.createElement("DIV");
doc.body.appendChild(box);
box.id = "avg_ls_inline_popup";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
}
}
avg_ls_add_event(window, "load", avg_ls_onload);
</script><script type="text/javascript">
/*
--------------------------------------------------------------------------
avg linkscanner inline verdict info popup
--------------------------------------------------------------------------
*/
// write verdict info and display the inline popup
function avg_ls_showinline(imageElem, msg)
{
//set verdict info
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.innerHTML = msg;
flyover.style.width = "auto"; //reset width
flyover.style.position = "absolute";
avg_ls_positioninline(imageElem);
}
function avg_ls_positioninline(imageElem)
{
var flyover = document.getElementById('avg_ls_inline_popup');
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
var scrollXWidth = 19; // approx
// Must know if there is a horizontal scroll bar for Firefox
// for proper flyover positioning near bottom edge
var scrollBarX = false; //default for Microsoft IE
var scrollYWidth = 18; //normally 17 (+1 top border)
if (window.innerHeight)
{ // not MSIE
try
{
scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;
scrollBarX = (document.documentElement.clientWidth < document.documentElement.scrollWidth);
}
catch(err){}
}
// get window sizes
if (window.innerHeight == undefined) // Microsoft IE
{
var windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;
var windowY = document.documentElement.clientHeight || document.body.clientHeight;
}
else
{
var windowX = window.innerWidth - scrollXWidth;
var windowY = window.innerHeight;
if (scrollBarX)
windowY -= scrollYWidth;
}
// get the flyover dimensions
if (window.getComputedStyle == undefined) // Microsoft IE
{
var flyoverX = parseInt(flyover.offsetWidth);
var flyoverY = parseInt(flyover.offsetHeight);
}
else
{
var style = document.defaultView.getComputedStyle(flyover, null);
var flyoverX = parseInt(style.width);
var flyoverY = parseInt(style.height);
}
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 = offsetLeft(imageElem) + halfX;
var posY = offsetTop(imageElem) + halfY;
var pageOffsetX = 0;
var pageOffsetY = 0;
// normalize pos to 0 -- get amount of scrolling in browser window
var hasParentFrame = false;
if (window.pageXOffset == undefined) // Microsoft IE
{
pageOffsetX = document.documentElement.scrollLeft || document.body.scrollLeft;
pageOffsetY = document.documentElement.scrollTop || document.body.scrollLeft;
var frames = document.frames;
if (frames)
{
for (var i=0; i < frames.length; i++)
{
if (frames[i].document.getElementById(imageElem.id))
{
pageOffsetX = frames[i].document.documentElement.scrollLeft;
pageOffsetY = frames[i].document.documentElement.scrollTop;
hasParentFrame = true;
break;
}
}
}
}
else
{
pageOffsetX = window.pageXOffset;
pageOffsetY = window.pageYOffset;
}
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
offsetY = windowY - flyoverY;
// 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 = paddedOffsetX + "px";
avg_ls_displayinline();
}
function avg_ls_displayinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
// show the flyover
flyover.style.visibility = "visible";
}
function avg_ls_hideinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.visibility = "hidden"; //invisible
flyover.style.left = "-5000px";
}
function offsetTop(element)
{
var offset = 0;
while (element)
{
offset += element.offsetTop;
element = element.offsetParent;
}
return offset;
}
function offsetLeft(element)
{
var offset = 0;
while (element)
{
offset += element.offsetLeft;
element = element.offsetParent;
}
return offset;
}
</script> <br />
<div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"></div><script type="text/javascript">
// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;
var shortened_urls = new Array("tinyurl.com","3.ly","bit.ly","tiny.cc","short.to","is.gd","tr.im");
var border_colors = new Array( "#00A120;", "#EAA500;", "#F57301;", "#D20003;" );
var background_colors = new Array( "#C3E5CA;", "#FEEFAE;", "#FFD3B0;", "#F5D4C1;" );
var images = new Array ( "linkscanner://safe12.png", "linkscanner://caution12.png", "linkscanner://warning12.png", "linkscanner://blocked12.png" );
var showCleanVerdicts = true;
var showLowRiskVerdicts = true;
var showMedRiskVerdicts = true;
function avg_ls_does_url_contain(url, contain)
{
if ((url == null) || (url.length < 1))
{
return false;
}
var strUrl = new String(url);
// breakup the url to check
var parts = strUrl.split("/");
if (parts.length < 3)
{
return false;
}
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
{
return true;
}
return false;
}
function avg_ls_valid_gmail_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 4))
return false;
var domain= parts[2];
var path = parts[3];
if ((domain.indexOf("mail.google.") != -1) ||
(domain.indexOf("gmail.") != -1))
{
// save the hostname to use getting links
gAvgHostName = "google.com";
return true;
}
return false;
}
function avg_ls_get_parent_div(element)
{
if ((element == null) || (element.parentNode == null))
return null;
while (element != null)
{
if ((element.tagName == "DIV") && element.className &&
(element.className.length > 0))
return element;
element = element.parentNode;
}
// no div
return null;
}
function avg_ls_parse_ads(href)
{
if (!href)
return href;
// check for google ad
var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 0))
return match
}
return href;
}
function avg_ls_get_gmail_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't mark anything but http://
if (element.href.indexOf("mailto") == 0)
continue;
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") &&
((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
)) // right ads
{
// parse for any ads
var newHref = avg_ls_parse_ads(element.href);
// add the image
avg_ls_check_url(doc, element, newHref);
}
}
}
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
}
}
return links;
}
function avg_ls_valid_facebook_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 2))
return false;
var domain= parts[2];
if (domain.indexOf("www.facebook.com") != -1)
{
// save the hostname to use getting links
gAvgHostName = "www.facebook.com";
return true;
}
return false;
}
function avg_ls_get_facebook_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't put verdicts in areas where typing is going on
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") && (parentDiv.className == "Mentions_Input"))
continue;
}
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
avg_ls_check_url(doc, element, element.href);
}
/*///cbk - take it out for now the home page can't access frameElement
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
if (doc.frames[j].frameElement != null )
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
}
avg_ls_get_facebook_links(doc.frames[j].document, processFrames);
}
}
*///cbk
return links;
}
function avg_ls_has_image(element)
{
if ((element == null) || (element.firstChild == null))
return false;
var nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return true;
nextElem = nextElem.nextSibling;
}
return false;
}
function avg_ls_update_image(doc, element, image )
{
if ((doc == null) || (element == null))
return ;
// mark the element as processed
element.setAttribute("avglschecked", "1");
// if no image, nothing to add
if (image == null)
return;
// update the image
if (element && element.firstChild)
{
image_elem = element.firstChild;
element.firstChild.src = image;
}
}
function avg_ls_add_image(doc, element, image, flyover)
{
if ((doc == null) || (element == null))
return;
// if no image, nothing to add
if (image == null)
return;
// create a new image
var img = doc.createElement("img");
img.src = image;
img.border="0";
img.hspace="5";
img.id = "avg_ls_image";
img.setAttribute("title", "");
// append the image to the link
element.appendChild(img);
img = null;
var newImg = element.lastChild;
if (flyover && newImg && newImg.id == "avg_ls_image")
{
newImg.attachEvent("onmouseover", function() {avg_ls_showinline(newImg, flyover)});
newImg.attachEvent("onmouseout", function() {avg_ls_hideinline()});
}
}
var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_gmail_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}
function avg_ls_monitor_facebook(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_facebook_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_facebook(doc, processFrames);}, 1000);
}
function avg_ls_process_links(doc, processFrames)
{
if (avg_ls_valid_gmail_search(doc.location.href))
{
// process the gmail links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_gmail(doc, processFrames);
}
if (avg_ls_valid_facebook_search(doc.location.href))
{
// process the facebook links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_facebook(doc, processFrames);
}
}
function avg_ls_reload(e)
{
avg_ls_process_links(document, true);
}
function avg_ls_onload(e)
{
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
var doc = document;
// set the event handler for the data element to listen for load/reloads
var data_element = doc.getElementById("avglsdata");
if (data_element)
{
// save data element for use in later iframes
gAvgDataElement = data_element;
// rowexit event used to notify javascript of a page data load
avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
avg_ls_add_event(data_element, "rowexit", avg_ls_reload);
// process links for the document
avg_ls_process_links(doc, true);
}
}
function avg_ls_get_anchors(doc)
{
return doc.getElementsByTagName("a");
}
function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
var avg_ls_data = null;
// get the data element
if (gAvgDataElement == null)
{
avg_ls_data = doc.getElementById("avglsdata");
if ((avg_ls_data == null) || (name == null))
{
// data element does not exist
return;
}
gAvgDataElement = avg_ls_data;
}
else
{
avg_ls_data = gAvgDataElement;
}
// for some reason you can't fire and event on an element with no parent node
if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
{
return;
}
// set the attributes
avg_ls_data.setAttribute("function", name);
if (param1)
avg_ls_data.setAttribute("param1", param1);
if (param2)
avg_ls_data.setAttribute("param2", param2);
if (param3)
avg_ls_data.setAttribute("param3", param3);
if (param4)
avg_ls_data.setAttribute("param4", param4);
if (param5)
avg_ls_data.setAttribute("param5", param5);
avg_ls_data.fireEvent("onrowenter");
// get the result
return avg_ls_data.getAttribute("result");
}
function avg_ls_get_image(result)
{
if ((result == null) || (result.length < 1))
return null;
var strResult = new String(result);
var parts = strResult.split("::");
if (parts.length < 3)
return;
var nSeverity = parseInt(parts[0]);
var image = null;
switch(nSeverity)
{
case 0:
if (showCleanVerdicts)
image = images[nSeverity];
break;
case 1:
if (showLowRiskVerdicts)
image = images[nSeverity];
break;
case 2:
if (showMedRiskVerdicts)
image = images[nSeverity];
break;
case 3:
image = images[nSeverity];
break;
default:
image = "linkscanner://unknown12.gif";
break;
}
return image;
}
// do the url check
function avg_ls_check_url(doc, element, href)
{
if (avg_ls_has_image(element))
return;
var result = avg_ls_call_func(doc, "MalsiteCheck", href);
if (result == null)
return;
var parts = result.split("::");
if (parts.length < 3)
return;
var nSeverity = parts[0];
var riskCategory = parts[1];
var riskName = parts[2];
if ( nSeverity == 0 )
{ // safe shortened urls will get checked at mouse over time
if (avg_ls_filter_url(href, shortened_urls))
{
// add onmouseover for anchors with shortened url
avg_ls_add_event(element, "mouseover", avg_ls_mouse_over);
return;
}
}
// mark as processed
element.setAttribute("avglschecked", "1");
// get the image from the result
var image = avg_ls_get_image(result);
if (image == null)
return;
var bgColor = background_colors[nSeverity];
var borderColor = border_colors[nSeverity];
// build the inline html
var html = "";
html += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>";
html += "<img src=linkscanner://LS_Logo_Results.gif/>
";
html += riskCategory + "
";
html += riskName + "
</div>";
avg_ls_add_image(doc, element, image, html);
}
function avg_ls_add_event(obj, name, func)
{
if (obj.addEventListener)
{
obj.addEventListener(name, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_remove_event(obj, name, func)
{
if (obj.removeEventListener)
{
obj.removeEventListener(name, func, false);
return true;
}
else if (obj.detachEvent)
{
return obj.detachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_mouse_over(e)
{
if (e && e.srcElement && e.srcElement.href)
{
var element = e.srcElement;
if (element.tagName == "A")
{
// check if it has an image already
if (avg_ls_has_image(element))
{
return;
}
// add the image, returns the anchor not the image
avg_ls_add_image(document, element, "linkscanner://clock12.png");
// do the check and update in the background
setTimeout(function() {avg_ls_check_and_update(document, element);}, 1);
}
}
}
function avg_ls_get_inline_image(element)
{
var nextElem = null;
if ((element == null) || (element.firstChild == null))
return nextElem;
nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return nextElem;
nextElem = nextElem.nextSibling;
}
return null;
}
function avg_ls_inline_hide_verdict(anchor)
{
var image = avg_ls_get_inline_image(anchor);
if ( image )
{
image.style.visibility = "hidden";
}
}
function avg_ls_check_and_update(doc, element)
{
var result = avg_ls_call_func(doc, "GetFinalUrl", element.href);
if (result)
{
var result2 = avg_ls_call_func(doc, "MalsiteCheck", result);
if (result2 == null)
return;
// remove the mouseover for this element, no need to fire again
avg_ls_remove_event(element, "mouseover", avg_ls_mouse_over);
// get the image from the result
var image = avg_ls_get_image(result2);
if (image == null)
avg_ls_inline_hide_verdict(element);
else
{
var img_elem = avg_ls_get_inline_image(element);
if (img_elem)
{
img_elem.src = image;
}
}
}
}
// function to find a url in a filter list
function avg_ls_filter_url(url, filter)
{
var strUrl = new String(url);
var parts = strUrl.split("/");
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < filter.length; i++)
{
if (domain.indexOf(filter[i]) != -1)
{
return true;
}
}
return false;
}
function avg_ls_init_ratings(doc)
{
// get configuration for verdict displays
var result = avg_ls_call_func(doc, "GetRatingsConfig");
var strResult = new String(result);
var parts = strResult.split("::");
if (parts != null && parts.length >= 4)
{
showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;
showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;
showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;
}
// setup for displaying the inline popup
if ( !doc.getElementById("avg_ls_inline_popup") )
{
var box = doc.createElement("DIV");
doc.body.appendChild(box);
box.id = "avg_ls_inline_popup";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
}
}
avg_ls_add_event(window, "load", avg_ls_onload);
</script><script type="text/javascript">
/*
--------------------------------------------------------------------------
avg linkscanner inline verdict info popup
--------------------------------------------------------------------------
*/
// write verdict info and display the inline popup
function avg_ls_showinline(imageElem, msg)
{
//set verdict info
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.innerHTML = msg;
flyover.style.width = "auto"; //reset width
flyover.style.position = "absolute";
avg_ls_positioninline(imageElem);
}
function avg_ls_positioninline(imageElem)
{
var flyover = document.getElementById('avg_ls_inline_popup');
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
var scrollXWidth = 19; // approx
// Must know if there is a horizontal scroll bar for Firefox
// for proper flyover positioning near bottom edge
var scrollBarX = false; //default for Microsoft IE
var scrollYWidth = 18; //normally 17 (+1 top border)
if (window.innerHeight)
{ // not MSIE
try
{
scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;
scrollBarX = (document.documentElement.clientWidth < document.documentElement.scrollWidth);
}
catch(err){}
}
// get window sizes
if (window.innerHeight == undefined) // Microsoft IE
{
var windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;
var windowY = document.documentElement.clientHeight || document.body.clientHeight;
}
else
{
var windowX = window.innerWidth - scrollXWidth;
var windowY = window.innerHeight;
if (scrollBarX)
windowY -= scrollYWidth;
}
// get the flyover dimensions
if (window.getComputedStyle == undefined) // Microsoft IE
{
var flyoverX = parseInt(flyover.offsetWidth);
var flyoverY = parseInt(flyover.offsetHeight);
}
else
{
var style = document.defaultView.getComputedStyle(flyover, null);
var flyoverX = parseInt(style.width);
var flyoverY = parseInt(style.height);
}
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 = offsetLeft(imageElem) + halfX;
var posY = offsetTop(imageElem) + halfY;
var pageOffsetX = 0;
var pageOffsetY = 0;
// normalize pos to 0 -- get amount of scrolling in browser window
var hasParentFrame = false;
if (window.pageXOffset == undefined) // Microsoft IE
{
pageOffsetX = document.documentElement.scrollLeft || document.body.scrollLeft;
pageOffsetY = document.documentElement.scrollTop || document.body.scrollLeft;
var frames = document.frames;
if (frames)
{
for (var i=0; i < frames.length; i++)
{
if (frames[i].document.getElementById(imageElem.id))
{
pageOffsetX = frames[i].document.documentElement.scrollLeft;
pageOffsetY = frames[i].document.documentElement.scrollTop;
hasParentFrame = true;
break;
}
}
}
}
else
{
pageOffsetX = window.pageXOffset;
pageOffsetY = window.pageYOffset;
}
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
offsetY = windowY - flyoverY;
// 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 = paddedOffsetX + "px";
avg_ls_displayinline();
}
function avg_ls_displayinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
// show the flyover
flyover.style.visibility = "visible";
}
function avg_ls_hideinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.visibility = "hidden"; //invisible
flyover.style.left = "-5000px";
}
function offsetTop(element)
{
var offset = 0;
while (element)
{
offset += element.offsetTop;
element = element.offsetParent;
}
return offset;
}
function offsetLeft(element)
{
var offset = 0;
while (element)
{
offset += element.offsetLeft;
element = element.offsetParent;
}
return offset;
}
</script><div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"></div><br />
</div><div style="margin-bottom: 0cm;"></div><div lang="en" style="margin-bottom: 0cm;"><a href="http://www.blogger.com/" name="result_box"></a>We are online, too.<br />
<br />
Short presentation of <a href="mailto:hobbyferramenta">hardware</a> that you are pushing large distributed among groups,<br />
proposing solutions to individuals, businesses and artisans in the world of articles for internal<br />
Everyone knows what it means to have a home friendly and personal. We are in this<br />
niche.<br />
In addition to program hardware items in production and commercially available, we<br />
to offer more.<br />
From information, we try to understand the desire of a person and the application<br />
technically and economically more convenient.<br />
<br />
The strength is, handles items in precious metals (brass, bronze, stainless steel and aluminum)<br />
interior and hard to find on the market more, we are supported by<br />
a foundry pieces<br />
Let's take the opportunity to receive (for example, media tents, cut to measure) the quantity<br />
required, dimensions and applications with varying demands.</div><div lang="en" style="margin-bottom: 0cm;"></div><div lang="en" style="margin-bottom: 0cm;">Our subjects covered are: Furniture Fittings<br />
Screws<br />
Interior fittings for tents<br />
and Handles</div><div lang="en" style="margin-bottom: 0cm;"><br />
</div><div lang="en" style="margin-bottom: 0cm;"><br />
<img src="https://mail.google.com/mail/?attid=0.1&disp=emb&view=att&th=12f007268d4c2be6" /><script type="text/javascript">
// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;
var shortened_urls = new Array("tinyurl.com","3.ly","bit.ly","tiny.cc","short.to","is.gd","tr.im");
var border_colors = new Array( "#00A120;", "#EAA500;", "#F57301;", "#D20003;" );
var background_colors = new Array( "#C3E5CA;", "#FEEFAE;", "#FFD3B0;", "#F5D4C1;" );
var images = new Array ( "linkscanner://safe12.png", "linkscanner://caution12.png", "linkscanner://warning12.png", "linkscanner://blocked12.png" );
var showCleanVerdicts = true;
var showLowRiskVerdicts = true;
var showMedRiskVerdicts = true;
function avg_ls_does_url_contain(url, contain)
{
if ((url == null) || (url.length < 1))
{
return false;
}
var strUrl = new String(url);
// breakup the url to check
var parts = strUrl.split("/");
if (parts.length < 3)
{
return false;
}
var domain= parts[2].toLowerCase();
if (domain.indexOf(contain) > -1)
{
return true;
}
return false;
}
function avg_ls_valid_gmail_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 4))
return false;
var domain= parts[2];
var path = parts[3];
if ((domain.indexOf("mail.google.") != -1) ||
(domain.indexOf("gmail.") != -1))
{
// save the hostname to use getting links
gAvgHostName = "google.com";
return true;
}
return false;
}
function avg_ls_get_parent_div(element)
{
if ((element == null) || (element.parentNode == null))
return null;
while (element != null)
{
if ((element.tagName == "DIV") && element.className &&
(element.className.length > 0))
return element;
element = element.parentNode;
}
// no div
return null;
}
function avg_ls_parse_ads(href)
{
if (!href)
return href;
// check for google ad
var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
var re = new RegExp(regex);
var matches = href.match(re);
if (matches && (matches.length >= 4))
{
// else we want the fourth value
var match = matches[3];
if (match && (match.length > 0))
return match
}
return href;
}
function avg_ls_get_gmail_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't mark anything but http://
if (element.href.indexOf("mailto") == 0)
continue;
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") &&
((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
)) // right ads
{
// parse for any ads
var newHref = avg_ls_parse_ads(element.href);
// add the image
avg_ls_check_url(doc, element, newHref);
}
}
}
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
}
}
return links;
}
function avg_ls_valid_facebook_search(url)
{
if ((url == null) || (url.length < 1))
return false;
var hostMatch = false;
// split the url based on '/'
var strUrl = new String(url);
var parts = strUrl.split("/");
// need domain and path
if ((parts == null) || (parts.length < 2))
return false;
var domain= parts[2];
if (domain.indexOf("www.facebook.com") != -1)
{
// save the hostname to use getting links
gAvgHostName = "www.facebook.com";
return true;
}
return false;
}
function avg_ls_get_facebook_links(doc, processFrames)
{
if (doc == null)
return;
var links = new Array();
var anchors = avg_ls_get_anchors(doc);
var element = null;
var outHref = "";
var elemClass = "";
// loop through all
for (var i = 0; (i < anchors.length) && anchors; i++)
{
element = anchors[i];
// initial checks
if ((element.href == null) || (element.href.length < 1))
continue;
if (avg_ls_does_url_contain(element.href, gAvgHostName))
continue;
// don't put verdicts in areas where typing is going on
if (element.parentNode)
{
var parentDiv = avg_ls_get_parent_div(element);
if ((parentDiv.tagName == "DIV") && (parentDiv.className == "Mentions_Input"))
continue;
}
// already processed this element
if (element.getAttribute("avglschecked"))
continue;
avg_ls_check_url(doc, element, element.href);
}
/*///cbk - take it out for now the home page can't access frameElement
// recursively process all frames
if (processFrames && doc.frames && (doc.frames.length > 0))
{
for (var j = 0; j < doc.frames.length; j++)
{
if (doc.frames[j].frameElement != null )
{
// 'editable' frame it's probably a reply
if (doc.frames[j].frameElement.className &&
(doc.frames[j].frameElement.className.indexOf("editable") != -1))
{
continue;
}
}
avg_ls_get_facebook_links(doc.frames[j].document, processFrames);
}
}
*///cbk
return links;
}
function avg_ls_has_image(element)
{
if ((element == null) || (element.firstChild == null))
return false;
var nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return true;
nextElem = nextElem.nextSibling;
}
return false;
}
function avg_ls_update_image(doc, element, image )
{
if ((doc == null) || (element == null))
return ;
// mark the element as processed
element.setAttribute("avglschecked", "1");
// if no image, nothing to add
if (image == null)
return;
// update the image
if (element && element.firstChild)
{
image_elem = element.firstChild;
element.firstChild.src = image;
}
}
function avg_ls_add_image(doc, element, image, flyover)
{
if ((doc == null) || (element == null))
return;
// if no image, nothing to add
if (image == null)
return;
// create a new image
var img = doc.createElement("img");
img.src = image;
img.border="0";
img.hspace="5";
img.id = "avg_ls_image";
img.setAttribute("title", "");
// append the image to the link
element.appendChild(img);
img = null;
var newImg = element.lastChild;
if (flyover && newImg && newImg.id == "avg_ls_image")
{
newImg.attachEvent("onmouseover", function() {avg_ls_showinline(newImg, flyover)});
newImg.attachEvent("onmouseout", function() {avg_ls_hideinline()});
}
}
var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_gmail_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}
function avg_ls_monitor_facebook(doc, processFrames)
{
// clear the timer if set
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
// get the links
avg_ls_get_facebook_links(doc, processFrames);
// reset the
if (!stopGmail)
timeoutId = setTimeout(function() {avg_ls_monitor_facebook(doc, processFrames);}, 1000);
}
function avg_ls_process_links(doc, processFrames)
{
if (avg_ls_valid_gmail_search(doc.location.href))
{
// process the gmail links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_gmail(doc, processFrames);
}
if (avg_ls_valid_facebook_search(doc.location.href))
{
// process the facebook links
stopGmail = false;
avg_ls_init_ratings(doc);
showCleanVerdicts = false;
avg_ls_monitor_facebook(doc, processFrames);
}
}
function avg_ls_reload(e)
{
avg_ls_process_links(document, true);
}
function avg_ls_onload(e)
{
if (timeoutId)
{
clearTimeout(timeoutId);
timeoutId = null;
}
var doc = document;
// set the event handler for the data element to listen for load/reloads
var data_element = doc.getElementById("avglsdata");
if (data_element)
{
// save data element for use in later iframes
gAvgDataElement = data_element;
// rowexit event used to notify javascript of a page data load
avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
avg_ls_add_event(data_element, "rowexit", avg_ls_reload);
// process links for the document
avg_ls_process_links(doc, true);
}
}
function avg_ls_get_anchors(doc)
{
return doc.getElementsByTagName("a");
}
function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
var avg_ls_data = null;
// get the data element
if (gAvgDataElement == null)
{
avg_ls_data = doc.getElementById("avglsdata");
if ((avg_ls_data == null) || (name == null))
{
// data element does not exist
return;
}
gAvgDataElement = avg_ls_data;
}
else
{
avg_ls_data = gAvgDataElement;
}
// for some reason you can't fire and event on an element with no parent node
if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
{
return;
}
// set the attributes
avg_ls_data.setAttribute("function", name);
if (param1)
avg_ls_data.setAttribute("param1", param1);
if (param2)
avg_ls_data.setAttribute("param2", param2);
if (param3)
avg_ls_data.setAttribute("param3", param3);
if (param4)
avg_ls_data.setAttribute("param4", param4);
if (param5)
avg_ls_data.setAttribute("param5", param5);
avg_ls_data.fireEvent("onrowenter");
// get the result
return avg_ls_data.getAttribute("result");
}
function avg_ls_get_image(result)
{
if ((result == null) || (result.length < 1))
return null;
var strResult = new String(result);
var parts = strResult.split("::");
if (parts.length < 3)
return;
var nSeverity = parseInt(parts[0]);
var image = null;
switch(nSeverity)
{
case 0:
if (showCleanVerdicts)
image = images[nSeverity];
break;
case 1:
if (showLowRiskVerdicts)
image = images[nSeverity];
break;
case 2:
if (showMedRiskVerdicts)
image = images[nSeverity];
break;
case 3:
image = images[nSeverity];
break;
default:
image = "linkscanner://unknown12.gif";
break;
}
return image;
}
// do the url check
function avg_ls_check_url(doc, element, href)
{
if (avg_ls_has_image(element))
return;
var result = avg_ls_call_func(doc, "MalsiteCheck", href);
if (result == null)
return;
var parts = result.split("::");
if (parts.length < 3)
return;
var nSeverity = parts[0];
var riskCategory = parts[1];
var riskName = parts[2];
if ( nSeverity == 0 )
{ // safe shortened urls will get checked at mouse over time
if (avg_ls_filter_url(href, shortened_urls))
{
// add onmouseover for anchors with shortened url
avg_ls_add_event(element, "mouseover", avg_ls_mouse_over);
return;
}
}
// mark as processed
element.setAttribute("avglschecked", "1");
// get the image from the result
var image = avg_ls_get_image(result);
if (image == null)
return;
var bgColor = background_colors[nSeverity];
var borderColor = border_colors[nSeverity];
// build the inline html
var html = "";
html += "<div style=background-color:" + bgColor;
html += "border-color:" + borderColor + ";";
html += "border-style:solid;";
html += "border-width:3px;";
html += "padding:3px;";
html += "padding-left:8px;";
html += "padding-right:8px;";
html += "-moz-border-radius:5px;>";
html += "<img src=linkscanner://LS_Logo_Results.gif/>
";
html += riskCategory + "
";
html += riskName + "
</div>";
avg_ls_add_image(doc, element, image, html);
}
function avg_ls_add_event(obj, name, func)
{
if (obj.addEventListener)
{
obj.addEventListener(name, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_remove_event(obj, name, func)
{
if (obj.removeEventListener)
{
obj.removeEventListener(name, func, false);
return true;
}
else if (obj.detachEvent)
{
return obj.detachEvent("on"+name, func);
}
else
{
return false;
}
}
function avg_ls_mouse_over(e)
{
if (e && e.srcElement && e.srcElement.href)
{
var element = e.srcElement;
if (element.tagName == "A")
{
// check if it has an image already
if (avg_ls_has_image(element))
{
return;
}
// add the image, returns the anchor not the image
avg_ls_add_image(document, element, "linkscanner://clock12.png");
// do the check and update in the background
setTimeout(function() {avg_ls_check_and_update(document, element);}, 1);
}
}
}
function avg_ls_get_inline_image(element)
{
var nextElem = null;
if ((element == null) || (element.firstChild == null))
return nextElem;
nextElem = element.firstChild;
while (nextElem)
{
if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
return nextElem;
nextElem = nextElem.nextSibling;
}
return null;
}
function avg_ls_inline_hide_verdict(anchor)
{
var image = avg_ls_get_inline_image(anchor);
if ( image )
{
image.style.visibility = "hidden";
}
}
function avg_ls_check_and_update(doc, element)
{
var result = avg_ls_call_func(doc, "GetFinalUrl", element.href);
if (result)
{
var result2 = avg_ls_call_func(doc, "MalsiteCheck", result);
if (result2 == null)
return;
// remove the mouseover for this element, no need to fire again
avg_ls_remove_event(element, "mouseover", avg_ls_mouse_over);
// get the image from the result
var image = avg_ls_get_image(result2);
if (image == null)
avg_ls_inline_hide_verdict(element);
else
{
var img_elem = avg_ls_get_inline_image(element);
if (img_elem)
{
img_elem.src = image;
}
}
}
}
// function to find a url in a filter list
function avg_ls_filter_url(url, filter)
{
var strUrl = new String(url);
var parts = strUrl.split("/");
if ((parts == null) || (parts.length < 3))
return false;
var domain = parts[2];
for (var i = 0; i < filter.length; i++)
{
if (domain.indexOf(filter[i]) != -1)
{
return true;
}
}
return false;
}
function avg_ls_init_ratings(doc)
{
// get configuration for verdict displays
var result = avg_ls_call_func(doc, "GetRatingsConfig");
var strResult = new String(result);
var parts = strResult.split("::");
if (parts != null && parts.length >= 4)
{
showCleanVerdicts = (parseInt(parts[0]) == 1) ? true : false;
showLowRiskVerdicts = (parseInt(parts[1]) == 1) ? true : false;
showMedRiskVerdicts = (parseInt(parts[2]) == 1) ? true : false;
}
// setup for displaying the inline popup
if ( !doc.getElementById("avg_ls_inline_popup") )
{
var box = doc.createElement("DIV");
doc.body.appendChild(box);
box.id = "avg_ls_inline_popup";
box.style.position = "absolute";
box.style.zIndex = "9999";
box.style.padding = "0px 0px";
box.style.marginLeft = "0px";
box.style.marginTop = "0px";
box.style.overflow = "hidden";
box.style.wordWrap = "break-word";
box.style.color = "black";
box.style.fontSize = "10px";
box.style.textAlign = "left";
box.style.lineHeight = "130%";
}
}
avg_ls_add_event(window, "load", avg_ls_onload);
</script><script type="text/javascript">
/*
--------------------------------------------------------------------------
avg linkscanner inline verdict info popup
--------------------------------------------------------------------------
*/
// write verdict info and display the inline popup
function avg_ls_showinline(imageElem, msg)
{
//set verdict info
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.innerHTML = msg;
flyover.style.width = "auto"; //reset width
flyover.style.position = "absolute";
avg_ls_positioninline(imageElem);
}
function avg_ls_positioninline(imageElem)
{
var flyover = document.getElementById('avg_ls_inline_popup');
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
var scrollXWidth = 19; // approx
// Must know if there is a horizontal scroll bar for Firefox
// for proper flyover positioning near bottom edge
var scrollBarX = false; //default for Microsoft IE
var scrollYWidth = 18; //normally 17 (+1 top border)
if (window.innerHeight)
{ // not MSIE
try
{
scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;
scrollBarX = (document.documentElement.clientWidth < document.documentElement.scrollWidth);
}
catch(err){}
}
// get window sizes
if (window.innerHeight == undefined) // Microsoft IE
{
var windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;
var windowY = document.documentElement.clientHeight || document.body.clientHeight;
}
else
{
var windowX = window.innerWidth - scrollXWidth;
var windowY = window.innerHeight;
if (scrollBarX)
windowY -= scrollYWidth;
}
// get the flyover dimensions
if (window.getComputedStyle == undefined) // Microsoft IE
{
var flyoverX = parseInt(flyover.offsetWidth);
var flyoverY = parseInt(flyover.offsetHeight);
}
else
{
var style = document.defaultView.getComputedStyle(flyover, null);
var flyoverX = parseInt(style.width);
var flyoverY = parseInt(style.height);
}
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 = offsetLeft(imageElem) + halfX;
var posY = offsetTop(imageElem) + halfY;
var pageOffsetX = 0;
var pageOffsetY = 0;
// normalize pos to 0 -- get amount of scrolling in browser window
var hasParentFrame = false;
if (window.pageXOffset == undefined) // Microsoft IE
{
pageOffsetX = document.documentElement.scrollLeft || document.body.scrollLeft;
pageOffsetY = document.documentElement.scrollTop || document.body.scrollLeft;
var frames = document.frames;
if (frames)
{
for (var i=0; i < frames.length; i++)
{
if (frames[i].document.getElementById(imageElem.id))
{
pageOffsetX = frames[i].document.documentElement.scrollLeft;
pageOffsetY = frames[i].document.documentElement.scrollTop;
hasParentFrame = true;
break;
}
}
}
}
else
{
pageOffsetX = window.pageXOffset;
pageOffsetY = window.pageYOffset;
}
posX -= pageOffsetX;
posY -= pageOffsetY;
//compensate for Firefox 3
if (posX < imgRect.left)
posX = imgRect.left+halfX;
// setup the offsets
var offsetX = posX;
var offsetY = posY;
// calc where to display on page
if ((windowX - posX) > posX)
{
// right
offsetX += halfX;
locateX = 1;
}
else
{
//left
offsetX -= (flyoverX + halfX);
}
if ((windowY - posY) > posY)
{
// below
if (posY < (windowY/4))
{
offsetY -= halfY;
locateY = 1;
}
else
{
offsetY -= (flyoverY / 2) - halfY;
locateY = 2;
}
}
else
{
// above
if ((windowY - posY) < (windowY/4))
{
offsetY -= (flyoverY - halfY);
}
else
{
offsetY -= (flyoverY / 2) + halfY;
locateY = 2;
}
}
// make sure we aren't off the screen
if (offsetY < 0)
offsetY = 0;
if ((offsetY + flyoverY) > windowY)
offsetY = windowY - flyoverY;
// 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 = paddedOffsetX + "px";
avg_ls_displayinline();
}
function avg_ls_displayinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
// show the flyover
flyover.style.visibility = "visible";
}
function avg_ls_hideinline()
{
var flyover = document.getElementById('avg_ls_inline_popup');
if (flyover == null)
return;
flyover.visibility = "hidden"; //invisible
flyover.style.left = "-5000px";
}
function offsetTop(element)
{
var offset = 0;
while (element)
{
offset += element.offsetTop;
element = element.offsetParent;
}
return offset;
}
function offsetLeft(element)
{
var offset = 0;
while (element)
{
offset += element.offsetLeft;
element = element.offsetParent;
}
return offset;
}
</script> <br />
<div id="avg_ls_inline_popup" style="color: black; font-size: 10px; line-height: 130%; margin-left: 0px; margin-top: 0px; overflow: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; position: absolute; text-align: left; word-wrap: break-word; z-index: 9999;"></div></div><div lang="en" style="margin-bottom: 0cm;"><br />
</div><div lang="en" style="margin-bottom: 0cm;">that besides the commercial lines, space with items on request, in fact often couples with customized items.<br />
Purchase of a <a href="http://www.riparacasa.blogspot.com/">handle</a>, you're forced to follow rules on the technical dimensions<br />
and later trying to find the item they like, not to go you've bought<br />
a piece with a unique desing, but you can not use.<br />
<br />
We chose this way of marketing, not only to provide articles, but also<br />
explanations, information and assembly systems, and also receive an exchange of ideas,<br />
news.</div><div lang="en" style="margin-bottom: 0cm;"><br />
</div><div lang="en" style="margin-bottom: 0cm;"><br />
</div><br />
<br />
<!-- INIZIO del codice HTML di zanox-affiliato --><br />
<!--(Il codice HTML non deve essere modificato per garantire la assoluta funzionalità)--><br />
<a href="http://ad.zanox.com/ppc/?17989513C1153609651T"><img src="http://ad.zanox.com/ppv/?17989513C1153609651" align="bottom" width="250" height="120" border="0" hspace="1" alt="Designershop New 250x120 2"></a><br />
<!-- FINE del codice HTML fi zanox affiliato -->Anonymoushttp://www.blogger.com/profile/10574826724925112450noreply@blogger.com0