//wIMG Link Preview script version 1.02
//manual: http://wimg.ca/manual#lps

var wimg_timeforfirstbub = 900;
var wimg_timebetweenbubs = 300;
var wimg_uniquez = 0;
var wimg_returned_url_state = new Array();
var wimg_returned_url_state_description = new Array();
var wimg_remember_answer_for_url = new Array();
var wimg_remember_answer_for_url_description = new Array();
var wimg_browserName = navigator.appName;
var wimg_b_size = 1;
var holdpop = 0;
var holdpop2 = 0;
var bulle_zIndex = 10000;

var padding_left = 10;
var padding_right = 30;
var padding_vert = 10;

var wimg_b_vert = 30;
var wimg_b_horiz = -100;

var spacefrommouseevent = 20;

var viewportwidth;
var viewportheight;

var wimg_completely_off = 0;

if(typeof wimg_debug == "undefined")
{
    var wimg_debug = 0;
}


if(typeof wimg_default_size != "undefined")
{
    wimg_b_size = wimg_default_size;
}
var user_size_cookie_value = wimg_getCookie('user_size');
if(user_size_cookie_value != '')
{
    wimg_b_size = user_size_cookie_value;
}

var wimg_linkpreview_on_off = 'on';
var linkpreview_on_off_cookie_value = wimg_getCookie('linkpreview_on_off');
if(linkpreview_on_off_cookie_value != '')
{
    wimg_linkpreview_on_off = linkpreview_on_off_cookie_value;
}


if(wimg_is_ie6())
{
    var m = document.createElement('link');
    m.setAttribute("rel","stylesheet");
    m.setAttribute("type","text/css");
    m.setAttribute("media","screen");
    m.setAttribute("href","http://wimg.ca/ie6_png_fix/ie.css");
    document.getElementsByTagName("head")[0].appendChild(m);
}


var wimg_putpreviews_counter = 0;
//window.onload = wimg_putpreviews;
if (window.addEventListener)
{
    window.addEventListener('load', wimg_putpreviews, false);
}
else if (window.attachEvent)
{
    window.attachEvent('onload', wimg_putpreviews);
}
function wimg_putpreviews()
{
    wimg_putpreviews_counter ++ ;
    var thelinks = document.getElementsByTagName('a');
    for(x in thelinks)
    {
        var iswantedclass = 0;
        if(typeof wimg_preview_links_from_following_classes != "undefined")
        {
            for(y in wimg_preview_links_from_following_classes)
            {
                if(wimg_preview_links_from_following_classes[y]==thelinks[x].className)
                {
                    iswantedclass = 1;
                    break;
                }
            }
        }
        var iswantedtarget = 0;
        if(typeof wimg_preview_links_from_following_targets != "undefined")
        {
            for(y in wimg_preview_links_from_following_targets)
            {
                if(wimg_preview_links_from_following_targets[y]==thelinks[x].target)
                {
                    iswantedtarget = 1;
                    break;
                }
            }
        }
        var iswantedid = 0;
        if(typeof wimg_preview_links_from_following_ids != "undefined")
        {
            for(y in wimg_preview_links_from_following_ids)
            {
                if(wimg_preview_links_from_following_ids[y]==thelinks[x].id)
                {
                    iswantedid = 1;
                    break;
                }
            }
        }

        if(thelinks[x].href!=undefined && (wimg_preview_all_links==1 || iswantedclass==1 || iswantedtarget==1 || iswantedid==1))
        {
            wimg_attach_preview(thelinks[x]);
        }
    }

    if(typeof wimg_preview_links_inside_elements_with_following_id != "undefined")
    {
        for(y in wimg_preview_links_inside_elements_with_following_id)
        {
            var this_wouldbe_element = document.getElementById(wimg_preview_links_inside_elements_with_following_id[y]);
            if(this_wouldbe_element != null)
            {
                thelinks = this_wouldbe_element.getElementsByTagName('a');
                for(x in thelinks)
                {
                    wimg_attach_preview(thelinks[x]);
                }
            }
        }
    }

    wimg_maybe_put_off_console();
}

function wimg_attach_preview(el)
{
    wimg_uniquez++;
    if(el.id==null || el.id=='')
    {
        el.id = 'filler_id_' + wimg_uniquez;
    }
    var link_id = el.id;
    if (el.addEventListener)
    {
        eval('el.addEventListener(\'mouseover\', function(event) {wimg_preview(event,"' + link_id + '");}, false);');
        eval('el.addEventListener(\'mouseout\', function(event) {wimg_close_preview(1);}, false);');
    }
    else if (el.attachEvent)
    {
        eval('el.attachEvent(\'onmouseover\', function(event) {wimg_preview(event,"' + link_id + '");});');
        eval('el.attachEvent(\'onmouseout\', function(event) {wimg_close_preview(1);});');
    }
}


function wimg_request(escaped_url)
{
    wimg_unique_query_number++;
    var query_number = wimg_unique_query_number;
    wimg_hold_urls_by_query[query_number] = unescape(escaped_url);
    wimg_makerequest(query_number);
}

var wimg_hold_urls_by_query = new Array();
var wimg_remember_request_times = new Array();
var wimg_unique_query_number = 0;
var wimg_millisecondsbetweenrequests = 100;
var wimg_timout_in_seconds = 10;
function wimg_makerequest(query_number)
{
    var ts = Math.round(new Date().getTime() / 1000);

    //exit if we do not have this url in array
    if(!wimg_hold_urls_by_query[query_number])
    {
        return;
    }
    var escaped_url = escape(wimg_hold_urls_by_query[query_number]);

    if(wimg_remember_answer_for_url[escaped_url]=='ready' || wimg_remember_answer_for_url[escaped_url]=='invalid')
    {
        wimg_returned_url_state[query_number] = wimg_remember_answer_for_url[escaped_url];
        wimg_returned_url_state_description[query_number] = wimg_remember_answer_for_url_description[escaped_url];
    }
    else
    {
        var m = document.createElement('script');
        m.setAttribute("type","text/javascript");
        m.setAttribute("charset", "utf-8");
        var scriptsrc = "http://wimg.ca/uc_y_mode_3_rk_" + query_number + "_" + (ts/5) + "/" + encodeURIComponent(wimg_hold_urls_by_query[query_number]);
        //alert(scriptsrc);
        m.setAttribute("src", scriptsrc);
        m.setAttribute("id", "wimg_xdjaxr_" + query_number);
        document.getElementsByTagName("head")[0].appendChild(m);

        //========check again in x milliseconds
        wimg_returned_url_state[query_number] = 'asking';
        wimg_remember_request_times[query_number] = ts;
        var timoutss = setTimeout("wimg_checkforanswerfromrequest(" + query_number + ");",wimg_millisecondsbetweenrequests);
    }
}
function wimg_checkforanswerfromrequest(query_number)
{
    var ts = Math.round(new Date().getTime() / 1000);

    //exit if we do not have this url in array
    if(!wimg_hold_urls_by_query[query_number])
    {
        return;
    }
    var escaped_url = escape(wimg_hold_urls_by_query[query_number]);

    //process answer:
    if(wimg_returned_url_state[query_number] == 'ready' || wimg_returned_url_state[query_number] == 'invalid' || wimg_returned_url_state[query_number] == 'queued')
    {
        //=========request is complete, save answer to array by URL
        wimg_remember_answer_for_url[escaped_url] = wimg_returned_url_state[query_number];
        wimg_remember_answer_for_url_description[escaped_url] = wimg_returned_url_state_description[query_number];
        wimg_cleanuprequest(query_number)
    }
    else if(wimg_returned_url_state[query_number] == 'asking')
    {
        //==============request still waiting, check again later or timeout
        var request_oldness = ts - wimg_remember_request_times[query_number];
        if(request_oldness < wimg_timout_in_seconds)
        {
            var timoutss = setTimeout("wimg_checkforanswerfromrequest(" + query_number + ");",wimg_millisecondsbetweenrequests);
        }
        else
        {
            wimg_cleanuprequest(query_number)
        }
    }
}
function wimg_cleanuprequest(query_number)
{
    wimg_hold_urls_by_query.splice(query_number, 1);
    wimg_returned_url_state.splice(query_number, 1);
    wimg_returned_url_state_description.splice(query_number, 1);
    wimg_remember_request_times.splice(query_number, 1);

    var m2 = document.getElementById("wimg_xdjaxr_" + query_number);
    if(m2 != null)
    {
        document.getElementsByTagName("head")[0].removeChild(m2);
    }
}

function wimg_maybe_put_off_console()
{
    if(wimg_linkpreview_on_off == 'off')
    {
        var wimg_off_console = document.getElementById('wimg_off_console');
        if(wimg_off_console == null)
        {
            var newdiv = document.createElement("div");
            newdiv.setAttribute("id",'wimg_off_console');
            document.body.appendChild(newdiv);
            newdiv.style.position = 'absolute';
            newdiv.style.zIndex = bulle_zIndex;
            newdiv.style.right = '60px';
            newdiv.style.top = (get_scrollTop() + 60) + 'px';
            newdiv.innerHTML = '<div style="width:48px;border:1px solid #000000;background-color:#FFFFFF;">' +
            '<div style="height:6px;background-color:#000000;cursor:pointer;"><!-- --></div>' +
            '<table style="table-collapse:collapse;"><tr><td style="width:24px;text-align:center;vertical-align:middle;">' +
            '<acronym title="Turn On Wimg Link Previews" style="border:none;"><a style="cursor:pointer;" onclick="wimg_on()"><img src="http://wimg.ca/on_s.png" alt="O" /></a></acronym>' +
            '</td><td style="width:24px;text-align:center;vertical-align:middle;">' +
            '<acronym title="Remove Wimg Link Previews Completely" style="border:none;"><a style="cursor:pointer;color:#000000;" onclick="wimg_begone()">[x]</a></acronym>' +
            '</td></tr></table>' +
            '</div>';
            makeDraggable(newdiv);

        }
    }
}

function get_scrollTop()
{
    var elscrolltop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
    return elscrolltop;
}
function get_scrollLeft()
{
    var elscrollleft = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft;
    return elscrollleft;
}


var wimg_t1;
function wimg_preview(e,el_id,query_number)
{
    if(wimg_linkpreview_on_off == 'off')
    {
        if(wimg_completely_off == 0)
        {
            wimg_maybe_put_off_console();
        }
    }
    else if(holdpop == 0)
    {


        wimg_close_preview(2);
    
        var mouseX = wimg_getMouseX(e);
        var mouseY = wimg_getMouseY(e);

        var the_wimg_link = document.getElementById(el_id);
        var the_wimg_link_url = the_wimg_link.href;
        var escaped_url = escape(the_wimg_link_url);


        var wanted_height;

        if(wimg_b_size == 1)
        {
            wanted_height = 216 + wimg_b_vert + 20;
        }
        else if(wimg_b_size == 2)
        {
            wanted_height = 312 + wimg_b_vert + 20;
        }
        else if(wimg_b_size == 3)
        {
            wanted_height = 504 + wimg_b_vert + 20;
        }

        var dotter_width = 50;

        //========create div, put first bubble and call function to put next bubble in x millisex
        var newdiv = document.createElement("div");
        newdiv.setAttribute("id",'wimg_preview');
        document.body.appendChild(newdiv);
        newdiv.style.position = 'absolute';
        newdiv.style.zIndex = bulle_zIndex;
        newdiv.style.width = dotter_width + 'px';
          
        var upordown = 'undecided';
        wimg_get_viewport_size();
        var space_above_mouse = mouseY - get_scrollTop();
        var space_under_mouse = viewportheight - (mouseY - get_scrollTop());

        if(space_above_mouse >= wanted_height)
        {
            upordown = 'up';
        }
        else if(space_under_mouse >= wanted_height)
        {
            upordown = 'down';
        }
        if(upordown == 'undecided')
        {
            upordown = 'up';
            if(space_under_mouse > space_above_mouse)
            {
                upordown = 'down';
            }
        }
        var vert_css_to_set;
        if(upordown == 'up')
        {
            var dist_from_topofview2curs = mouseY - get_scrollTop();
            var dist_from_bottomofview2curs = viewportheight - dist_from_topofview2curs;
            if(wimg_is_ie6())
            {
                newdiv.style.bottom = (dist_from_bottomofview2curs + spacefrommouseevent) + "px";
            }
            else
            {
                newdiv.style.bottom = ((dist_from_bottomofview2curs - get_scrollTop()) + spacefrommouseevent) + "px";
            }
            vert_css_to_set = 'bottom';
        }
        else
        {
            newdiv.style.top = (mouseY + spacefrommouseevent) + "px";
            vert_css_to_set = 'top';
        }

        var goforleft = mouseX;
        if(goforleft < (get_scrollLeft() + padding_left))
        {
            goforleft = get_scrollLeft() + padding_left;
        }
        if(goforleft > ((get_scrollLeft() + viewportwidth) - (dotter_width + padding_right)))
        {
            goforleft = (get_scrollLeft() + viewportwidth) - (dotter_width + padding_right);
        }
        newdiv.style.left = goforleft + "px";

        newdiv.innerHTML = '<img src="http://wimg.ca/bulle1.png" alt="" style="position:absolute;' + vert_css_to_set + ':0px;left:0px;" />';

        var gofortimez = wimg_timeforfirstbub;
        if(wimg_remember_answer_for_url[escaped_url]=='ready' || wimg_remember_answer_for_url[escaped_url]=='invalid')
        {
            gofortimez = wimg_timebetweenbubs;
        }

        wimg_t1=setTimeout("wimg_put_2e_bulle('" + upordown + "','" + escaped_url + "','" + the_wimg_link.target + "','" + el_id + "'," + goforleft + "," + mouseY + ");",gofortimez);
    }
}

function wimg_is_ie6(){
    return ((window.XMLHttpRequest == undefined) && (ActiveXObject != undefined));
}

var wimg_t2;
function wimg_put_2e_bulle(upordown,escaped_url,target,el_id,mouseX,mouseY)
{
    var eldiv = document.getElementById('wimg_preview');
    if(eldiv)
    {
        var vert_css_to_set;
        if(upordown == 'up')
        {
            vert_css_to_set = 'bottom';
        }
        else
        {
            vert_css_to_set = 'top';
        }
        eldiv.innerHTML = eldiv.innerHTML + '<img src="http://wimg.ca/bulle2.png" alt="" style="position:absolute;' + vert_css_to_set + ':8px;left:8px;" />';
        wimg_t2=setTimeout("wimg_put_3e_bulle('" + upordown + "','" + escaped_url + "','" + target + "','" + el_id + "'," + mouseX + "," + mouseY + ");",wimg_timebetweenbubs);

        wimg_request(escaped_url);
    }
}

var wimg_t3;
function wimg_put_3e_bulle(upordown,escaped_url,target,el_id,mouseX,mouseY)
{
    var eldiv = document.getElementById('wimg_preview');
    if(eldiv)
    {
        var vert_css_to_set;
        if(upordown == 'up')
        {
            vert_css_to_set = 'bottom';
        }
        else
        {
            vert_css_to_set = 'top';
        }
        eldiv.innerHTML = eldiv.innerHTML + '<img src="http://wimg.ca/bulle3.png" alt="" style="position:absolute;' + vert_css_to_set + ':18px;left:18px;" />';
        var tail_HTML = eldiv.innerHTML;
        wimg_t3=setTimeout("wimg_put_bulle_principale('" + upordown + "','" + escaped_url + "','" + target + "','" + el_id + "'," + mouseX + "," + mouseY + ",'" + escape(tail_HTML) + "',1);",wimg_timebetweenbubs);
    }
}




function wimg_get_viewport_size()
{
    if(typeof window.innerWidth != 'undefined')
    {
        viewportwidth = window.innerWidth;
        viewportheight = window.innerHeight;
    }
    else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0)
    {
        viewportwidth = document.documentElement.clientWidth;
        viewportheight = document.documentElement.clientHeight;
    }
    else
    {
        viewportwidth = document.getElementsByTagName('body')[0].clientWidth
        viewportheight = document.getElementsByTagName('body')[0].clientHeight
    }
}


var wimg_t4;
var wimg_t5;
var wimg_t6;
function wimg_put_bulle_principale(upordown,escaped_url,target,el_id,mouseX,mouseY,escaped_tail_HTML,counttries)
{    
    
    var eldiv = document.getElementById('wimg_preview');
    if(eldiv)
    {


        if(wimg_remember_answer_for_url[escaped_url])
        {
            var vert_css_to_set;
            var wimg_b_vert_adder;           
            if(upordown == 'up')
            {
                vert_css_to_set = 'bottom';
            }
            else
            {
                vert_css_to_set = 'top';
            }

            wimg_get_viewport_size();


            var fixed_wimg_b_vert = wimg_b_vert;
            var height_of_whole_thing;
            if(wimg_remember_answer_for_url[escaped_url]=='ready')
            {
                var wimg_b_pic;
                var wimg_l_vert;
                var wimg_bt_vert;
                var wimg_s_vert;
                var wimg_p_width;
                var wimg_p_height;
                if(wimg_b_size == 1)
                {
                    wimg_b_pic = 'http://wimg.ca/bullemains1.png';
                    wimg_p_width = 128;
                    wimg_p_height = 96;
                }
                else if(wimg_b_size == 2)
                {
                    wimg_b_pic = 'http://wimg.ca/bullemains2.png';
                    wimg_p_width = 256;
                    wimg_p_height = 192;
                }
                else if(wimg_b_size == 3)
                {
                    wimg_b_pic = 'http://wimg.ca/bullemains3.png';
                    wimg_p_width = 512;
                    wimg_p_height = 384;
                }

                height_of_whole_thing = spacefrommouseevent + fixed_wimg_b_vert + wimg_p_height + 60 + 60;
            }
            else
            {
                height_of_whole_thing = fixed_wimg_b_vert + 200;
            }
            var available_height;
            if(upordown == 'up')
            {
                available_height = mouseY - (get_scrollTop() + padding_vert);
            }
            else
            {
                available_height = ((get_scrollTop() + viewportheight) - padding_vert) - mouseY;
            }
            if(height_of_whole_thing > available_height)
            {
                fixed_wimg_b_vert = fixed_wimg_b_vert - (height_of_whole_thing - available_height);

                var height_of_bubble = wimg_p_height + 60 + 60;
                var viewport_height_minus_padding = viewportheight - (padding_vert * 2);
                if(upordown == 'down' && height_of_bubble > viewport_height_minus_padding)
                {
                    var eldifferencio = height_of_bubble - viewport_height_minus_padding;
                    fixed_wimg_b_vert = fixed_wimg_b_vert + eldifferencio;
                }

            }


            var fixed_wimg_b_horiz = wimg_b_horiz;
            var right_edge;
            if(wimg_remember_answer_for_url[escaped_url]=='ready')
            {
                right_edge = mouseX + fixed_wimg_b_horiz + wimg_p_width + 60;
            }
            else
            {
                right_edge = mouseX + fixed_wimg_b_horiz + 300;
            }
            if(right_edge > ((get_scrollLeft() + viewportwidth) - padding_right))
            {
                ladifference = right_edge - ((get_scrollLeft() + viewportwidth) - padding_right);
                fixed_wimg_b_horiz = fixed_wimg_b_horiz - ladifference;
            }
            var left_edge = mouseX + fixed_wimg_b_horiz;
            var ladifference;
            if(left_edge < (get_scrollLeft() + padding_left))
            {
                ladifference = (get_scrollLeft() + padding_left) - left_edge;
                fixed_wimg_b_horiz = fixed_wimg_b_horiz + ladifference;
            }            



            if(wimg_remember_answer_for_url[escaped_url]=='ready')
            {
                



                holdpop = 1;
                





                if(upordown == 'up')
                {
                    wimg_b_vert_adder = 90;
                    wimg_l_vert = fixed_wimg_b_vert + (30 + 40);
                    wimg_bt_vert = wimg_l_vert - 20;
                    wimg_s_vert = wimg_bt_vert - 20;
                }
                else
                {
                    wimg_b_vert_adder = 30;
                    wimg_l_vert = fixed_wimg_b_vert + (30 + wimg_p_height);
                    wimg_bt_vert = wimg_l_vert + 20;
                    wimg_s_vert = wimg_bt_vert + 20;
                }                
                var wimg_p_vert = fixed_wimg_b_vert + wimg_b_vert_adder;

                                

                eldiv.innerHTML = unescape(escaped_tail_HTML) +
                //bubble bg
                '<img src="' + wimg_b_pic + '" alt="" style="position:absolute;' + vert_css_to_set + ':' + fixed_wimg_b_vert + 'px;left:' + fixed_wimg_b_horiz + 'px;" />' +
                //pic
                '<a href="' + unescape(escaped_url) + '" target="' + target + '"><img src="http://wimg.ca/uc_y_size_' + wimg_b_size + '/' + encodeURIComponent(unescape(escaped_url)) + '" alt="" style="position:absolute;' + vert_css_to_set + ':' + wimg_p_vert + 'px;left:' + (fixed_wimg_b_horiz + 30) + 'px;border:none;" /></a>' +
                //link
                '<input type="text" value="' + unescape(escaped_url) + '" style="width:' + wimg_p_width + 'px;height:20px;position:absolute;' + vert_css_to_set + ':' + wimg_l_vert + 'px;left:' + (fixed_wimg_b_horiz + 30) + 'px;font-size:12px;" readonly="readonly" />' +
                //buttons
                '<div style="width:' + wimg_p_width + 'px;height:20px;position:absolute;' + vert_css_to_set + ':' + wimg_bt_vert + 'px;left:' + (fixed_wimg_b_horiz + 30) + 'px;text-align:center;vertical-align:middle;">' +
                '<table style="width:100%;table-layout:fixed;border-collapse:collapse;position:absolute;top:0px;left:0px;"><tr><td style="height:20px;width:50%;text-align:center;vertical-align:middle;padding:0px;margin:0px;">' +
                '<acronym title="Small View" style="border:none;"><a style="cursor:pointer;" onclick="wimg_resize(1,\'' + upordown + '\',\'' + escaped_url + '\',\'' + target + '\',\'' + el_id + '\',' + mouseX + ',\'' + mouseY + '\',\'' + escaped_tail_HTML + '\')"><img src="http://wimg.ca/smallview_s.png" alt="S" /></a></acronym>' +
                '<acronym title="Medium Viem" style="border:none;"><a style="cursor:pointer;" onclick="wimg_resize(2,\'' + upordown + '\',\'' + escaped_url + '\',\'' + target + '\',\'' + el_id + '\',' + mouseX + ',\'' + mouseY + '\',\'' + escaped_tail_HTML + '\')"><img src="http://wimg.ca/mediumview_s.png" alt="M" style="position:relative;left:-2px;" /></a></acronym>' +
                '<acronym title="Large View" style="border:none;"><a style="cursor:pointer;" onclick="wimg_resize(3,\'' + upordown + '\',\'' + escaped_url + '\',\'' + target + '\',\'' + el_id + '\',' + mouseX + ',\'' + mouseY + '\',\'' + escaped_tail_HTML + '\')"><img src="http://wimg.ca/largeview_s.png" alt="L" /></a></acronym>' +
                '</td><td style="height:20px;text-align:center;vertical-align:middle;padding:0px;margin:0px;">' +
                '<acronym title="Turn Off Wimg Link Previews" style="border:none;"><a style="cursor:pointer;" onclick="wimg_off()"><img src="http://wimg.ca/off_s.png" alt="X" /></a></acronym>' +
                '</td></tr></table>' +
                '</div>' +
                //signature
                '<div style="width:' + wimg_p_width + 'px;height:20px;position:absolute;' + vert_css_to_set + ':' + wimg_s_vert + 'px;left:' + (fixed_wimg_b_horiz + 30) + 'px;text-align:right;vertical-align:middle;font-size:9px;">' +
                '<span style="position:relative;top:4px;">webshots by <a href="http://wimg.ca/" target="_blank" style="color:#0000FF;">wimg.ca</a>&#160;&#160;&#160;</span>' +
                '</div>';


                //=======make 4 super mouseout zones

                var dist_around_click = 60;
                var short_dist_around_click = 25;
                var long_dist_around_click = 120;

                //top zone
                var topsideofhole;
                var newdiv;
                if(upordown == 'up')
                {
                    topsideofhole = mouseY - long_dist_around_click;
                }
                else
                {
                    topsideofhole = mouseY - short_dist_around_click;
                }
                if(topsideofhole > get_scrollTop() && document.getElementById('wimg_preview_out_top')==null)
                {
                    var top_zone_height = topsideofhole - get_scrollTop();
                    newdiv = document.createElement("div");
                    newdiv.setAttribute("id",'wimg_preview_out_top');
                    document.body.appendChild(newdiv);
                    newdiv.style.position = 'absolute';
                    newdiv.style.zIndex = bulle_zIndex - 1;
                    newdiv.style.left = get_scrollLeft() + 'px';
                    newdiv.style.top = get_scrollTop() + 'px';
                    newdiv.style.height = top_zone_height + 'px';
                    newdiv.style.width = (viewportwidth - padding_right) + 'px';
                    //if(debug == 1)
                    //{
                    //    newdiv.style.border = 'dotted green';
                    //}
                    newdiv.innerHTML = '<!-- -->';
                    newdiv.style.backgroundImage="url(http://wimg.ca/pix.gif)";
                    newdiv.style.backgroundRepeat="repeat";
                    newdiv.style.padding = "0px";
                    newdiv.style.margin = "0px";
                    eval('newdiv.onmouseover = function() {wimg_close_preview(2);};');
                }

                //right zone
                var rightsideofhole = mouseX + dist_around_click;
                if(rightsideofhole < (get_scrollLeft() + (viewportwidth - padding_right)) && document.getElementById('wimg_preview_out_right')==null)
                {
                    var right_zone_width = (get_scrollLeft() + (viewportwidth - padding_right)) - rightsideofhole;
                    newdiv = document.createElement("div");
                    newdiv.setAttribute("id",'wimg_preview_out_right');
                    document.body.appendChild(newdiv);
                    newdiv.style.position = 'absolute';
                    newdiv.style.zIndex = bulle_zIndex - 1;
                    newdiv.style.left = rightsideofhole + 'px';
                    newdiv.style.top = get_scrollTop() + 'px';
                    newdiv.style.height = (viewportheight - padding_vert) + 'px';
                    newdiv.style.width = right_zone_width + 'px';
                    //if(debug == 1)
                    //{
                    //    newdiv.style.border = 'dotted blue';
                    //}
                    newdiv.innerHTML = '<!-- -->';
                    newdiv.style.backgroundImage="url(http://wimg.ca/pix.gif)";
                    newdiv.style.backgroundRepeat="repeat";
                    newdiv.style.padding = "0px";
                    newdiv.style.margin = "0px";
                    eval('newdiv.onmouseover = function() {wimg_close_preview(2);};');
                }

                //bottom zone
                var bottomsideofhole;
                if(upordown == 'up')
                {
                    bottomsideofhole = mouseY + short_dist_around_click;
                }
                else
                {
                    bottomsideofhole = mouseY + long_dist_around_click;
                }
                if(bottomsideofhole < (get_scrollTop() + (viewportheight - padding_vert)) && document.getElementById('wimg_preview_out_bottom')==null)
                {
                    var bottom_zone_height = (get_scrollTop() + (viewportheight - padding_vert)) - bottomsideofhole;
                    newdiv = document.createElement("div");
                    newdiv.setAttribute("id",'wimg_preview_out_bottom');
                    document.body.appendChild(newdiv);
                    newdiv.style.position = 'absolute';
                    newdiv.style.zIndex = bulle_zIndex - 1;
                    newdiv.style.left = get_scrollLeft() + 'px';
                    newdiv.style.top = bottomsideofhole + 'px';
                    newdiv.style.height = bottom_zone_height + 'px';
                    newdiv.style.width = (viewportwidth - padding_right) + 'px';
                    //if(debug == 1)
                    //{
                    //    newdiv.style.border = 'dotted red';
                    //}
                    newdiv.innerHTML = '<!-- -->';
                    newdiv.style.backgroundImage="url(http://wimg.ca/pix.gif)";
                    newdiv.style.backgroundRepeat="repeat";
                    newdiv.style.padding = "0px";
                    newdiv.style.margin = "0px";
                    eval('newdiv.onmouseover = function() {wimg_close_preview(2);};');
                }

                //left zone
                var leftsideofhole = mouseX - get_scrollLeft() - dist_around_click;
                if(leftsideofhole > get_scrollLeft() && document.getElementById('wimg_preview_out_left')==null)
                {
                    var left_zone_width = leftsideofhole - get_scrollLeft();
                    newdiv = document.createElement("div");
                    newdiv.setAttribute("id",'wimg_preview_out_left');
                    document.body.appendChild(newdiv);
                    newdiv.style.position = 'absolute';
                    newdiv.style.zIndex = bulle_zIndex - 1;
                    newdiv.style.left = get_scrollLeft() + 'px';
                    newdiv.style.top = get_scrollTop() + 'px';
                    newdiv.style.height = (viewportheight - padding_vert) + 'px';
                    newdiv.style.width = leftsideofhole + 'px';
                    //if(debug == 1)
                    //{
                    //    newdiv.style.border = 'dotted orange';
                    //}
                    newdiv.innerHTML = '<!-- -->';
                    newdiv.style.backgroundImage="url(http://wimg.ca/pix.gif)";
                    newdiv.style.backgroundRepeat="repeat";
                    newdiv.style.padding = "0px";
                    newdiv.style.margin = "0px";
                    eval('newdiv.onmouseover = function() {wimg_close_preview(2);};');
                }




            }
            else
            {
                var wimg_css_bg;
                if(!wimg_is_ie6())
                {
                    if(wimg_remember_answer_for_url[escaped_url]=='invalid')
                    {
                        wimg_css_bg = 'background-image:url(http://wimg.ca/error.png);';
                    }
                    else if(wimg_remember_answer_for_url[escaped_url]=='queued')
                    {
                        wimg_css_bg = 'background-image:url(http://wimg.ca/loading' + wimg_remember_img_num + '.png);';
                    }
                }

                eldiv.innerHTML = unescape(escaped_tail_HTML) +
                '<div style="position:absolute;' + vert_css_to_set + ':' + fixed_wimg_b_vert + 'px;left:' + fixed_wimg_b_horiz + 'px;' + wimg_css_bg + 'background-repeat:no-repeat;background-position:center center;" id="wimg_animessage">' +
                '<table style="border-collapse:collapse;"><tr><td style="width:0px;"><div style="height:60px;"><!-- --></div></td><td>' +
                make_movie_letters(wimg_remember_answer_for_url_description[escaped_url]) +
                '</td></tr></table>' +
                '</div>';




                if(wimg_remember_answer_for_url[escaped_url]=='queued')
                {
                    if(wimg_load_animator == null && !wimg_is_ie6())
                    {
                        wimg_animload(1);
                    }
                    wimg_t5=setTimeout("wimg_request('" + escaped_url + "');",2000);
                    wimg_t6=setTimeout("wimg_put_bulle_principale('" + upordown + "','" + escaped_url + "','" + target + "','" + el_id + "'," + mouseX + "," + mouseY + ",'" + escaped_tail_HTML + "',1);",3000);
                }
            }
        }
        else if(counttries < 2000)
        {
            if(counttries==500 || counttries==1000 || counttries==1500)
            {
                wimg_request(escaped_url);
            }
            //eldiv.innerHTML = eldiv.innerHTML + '<div style="position:absolute;' + vert_css_to_set + ':' + (44 + counttries) + 'px;left:' + (44 + counttries) + 'px;">look again...</div>';
            counttries++;
            wimg_t4=setTimeout("wimg_put_bulle_principale('" + upordown + "','" + escaped_url + "','" + target + "','" + el_id + "'," + mouseX + "," + mouseY + ",'" + escaped_tail_HTML + "'," + counttries + ");",10);
        }
    }
}

var wimg_load_animator;
var wimg_remember_img_num = 1;
function wimg_animload(img_num)
{
    var thediv = document.getElementById("wimg_animessage");
    if(thediv != null)
    {
        thediv.style.backgroundImage='url(http://wimg.ca/loading' + img_num + '.png)';
        wimg_remember_img_num = img_num;
        var nextnum = img_num + 1;
        if(nextnum > 8)
        {
            nextnum = 1;
        }
        wimg_load_animator=setTimeout("wimg_animload(" + nextnum + ");",200);
    }
}

function wimg_off()
{
    wimg_close_preview(2);
    wimg_linkpreview_on_off = 'off';
    wimg_maybe_put_off_console();
    wimg_setCookie('linkpreview_on_off','off',500);
}
function wimg_on()
{
    wimg_linkpreview_on_off = 'on';
    remove_console();
    wimg_setCookie('linkpreview_on_off','on',500);


    var newdiv = document.createElement("div");
    newdiv.setAttribute("id",'wimg_ison');
    document.body.appendChild(newdiv);
    newdiv.style.position = 'absolute';
    newdiv.style.zIndex = bulle_zIndex;
    newdiv.style.left = '0px';
    newdiv.style.top = (get_scrollTop() + 20) + 'px';
    newdiv.style.textAlign = 'center';
    newdiv.style.width = '100%';
    newdiv.style.padding = "0px";
    newdiv.style.margin = "0px";
    newdiv.innerHTML = '<span style="background-color:red;color:white;font-family:monospace;font-weight:bold;font-size:16px;">wIMG link previews is ON...</span>';

    var gabbahaxx=setTimeout("wimg_remove_ison_message();",2000);
}
function wimg_remove_ison_message()
{
    var oldelem = document.getElementById('wimg_ison');
    if(oldelem)
    {
        document.body.removeChild(oldelem);
    }
}
function wimg_begone()
{
    wimg_completely_off = 1;
    remove_console();
}
function remove_console()
{
    var console = document.getElementById('wimg_off_console');
    if(console)
    {
        document.body.removeChild(console);
    }
}

function wimg_resize(newsize,upordown,escaped_url,target,el_id,mouseX,mouseY,escaped_tail_HTML)
{
    wimg_setCookie('user_size',newsize,500)
    wimg_b_size = newsize;
    holdpop2 = 1;
    wimg_put_bulle_principale(upordown,escaped_url,target,el_id,mouseX,mouseY,escaped_tail_HTML,1);
    var gabbax=setTimeout("holdpop2 = 0;",10);
}

function make_movie_letters(text)
{
    var fontstyle = 'width:300px;font-family:sans-serif;font-size:15px;font-weight:bold;';
    var text_in_movie_letters = '<div style="width:310px;position:relative;">' +

    //shadow
    '<div style="position:absolute;top:0px;left:7px;color:#666666;' + fontstyle + '">' + text + '</div>' +
    '<div style="position:absolute;top:2px;left:7px;color:#666666;' + fontstyle + '">' + text + '</div>' +
    '<div style="position:absolute;top:2px;left:5px;color:#666666;' + fontstyle + '">' + text + '</div>' +
    //more lenghty shadow
    '<div style="position:absolute;top:0px;left:8px;color:#666666;' + fontstyle + '">' + text + '</div>' +
    '<div style="position:absolute;top:3px;left:8px;color:#666666;' + fontstyle + '">' + text + '</div>' +
    '<div style="position:absolute;top:3px;left:5px;color:#666666;' + fontstyle + '">' + text + '</div>' +

    //straight angles black countours
    '<div style="position:absolute;top:-1px;left:5px;color:#000000;' + fontstyle + '">' + text + '</div>' +
    '<div style="position:absolute;top:0px;left:6px;color:#000000;' + fontstyle + '">' + text + '</div>' +
    '<div style="position:absolute;top:1px;left:5px;color:#000000;' + fontstyle + '">' + text + '</div>' +
    '<div style="position:absolute;top:0px;left:4px;color:#000000;' + fontstyle + '">' + text + '</div>' +

    //in-between angles 2nd moton of black coutours
    '<div style="position:absolute;top:1px;left:6px;color:#000000;' + fontstyle + '">' + text + '</div>' +
    '<div style="position:absolute;top:-1px;left:6px;color:#000000;' + fontstyle + '">' + text + '</div>' +
    '<div style="position:absolute;top:-1px;left:4px;color:#000000;' + fontstyle + '">' + text + '</div>' +
    '<div style="position:absolute;top:1px;left:4px;color:#000000;' + fontstyle + '">' + text + '</div>' +

    //white letters
    '<div style="position:relative;top:0px;left:5px;color:#FFFFFF;' + fontstyle + '">' + text + '</div>' +
    '</div>';
    return text_in_movie_letters;
}


function wimg_close_preview(level)
{
    if((level == 2 || holdpop == 0) && holdpop2 == 0)
    {
        var oldelem = document.getElementById('wimg_preview');
        if(oldelem)
        {
            document.body.removeChild(oldelem);
        }
        
        var oldelem3 = document.getElementById('wimg_preview_out_left');
        if(oldelem3)
        {
            document.body.removeChild(oldelem3);
        }

        var oldelem4 = document.getElementById('wimg_preview_out_bottom');
        if(oldelem4)
        {
            document.body.removeChild(oldelem4);
        }

        var oldelem5 = document.getElementById('wimg_preview_out_right');
        if(oldelem5)
        {
            document.body.removeChild(oldelem5);
        }

        var oldelem6 = document.getElementById('wimg_preview_out_top');
        if(oldelem6)
        {
            document.body.removeChild(oldelem6);
        }


        if(wimg_t1 != null)
        {
            clearTimeout(wimg_t1);
            wimg_t1 = null;
        }
        if(wimg_t2 != null)
        {
            clearTimeout(wimg_t2);
            wimg_t2 = null;
        }
        if(wimg_t3 != null)
        {
            clearTimeout(wimg_t3);
            wimg_t3 = null;
        }
        if(wimg_t4 != null)
        {
            clearTimeout(wimg_t4);
            wimg_t4 = null;
        }
        if(wimg_t5 != null)
        {
            clearTimeout(wimg_t5);
            wimg_t5 = null;
        }
        if(wimg_t6 != null)
        {
            clearTimeout(wimg_t6);
            wimg_t6 = null;
        }
        if(wimg_load_animator != null)
        {
            clearTimeout(wimg_load_animator);
            wimg_load_animator = null;
        }
        holdpop = 0;
    }
}


function wimg_getMouseX(evt) {
    if (evt.pageX) return evt.pageX;
    else if (evt.clientX)
        return evt.clientX + get_scrollLeft();
    else return null;
}
function wimg_getMouseY(evt) {
    if (evt.pageY) return evt.pageY;
    else if (evt.clientY)
        return evt.clientY + get_scrollTop();
    else return null;
}

function wimg_setCookie(c_name,value,expiredays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}
function wimg_getCookie(c_name)
{
    if (document.cookie.length>0)
    {
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1)
        {
            c_start=c_start + c_name.length+1;
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1) c_end=document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
        }
    }
    return "";
}




function get_clientTop()
{
    var elclientTop = document.documentElement.clientTop ? document.documentElement.clientTop : document.body.clientTop;
    return elclientTop;
}
function get_clientLeft()
{
    var elclientLeft = document.documentElement.clientLeft ? document.documentElement.clientLeft : document.body.clientLeft;
    return elclientLeft;
}




//from http://www.webreference.com/programming/javascript/mk/column2/
//document.onmousemove = mouseMove;
function mouseMove(ev){
    ev           = ev || window.event;
    var mousePos = mouseCoords(ev);
}
function mouseCoords(ev){
    if(ev.pageX || ev.pageY){
        return {
            x:ev.pageX,
            y:ev.pageY
        };
    }
    return {
        x:ev.clientX + get_scrollLeft() - get_clientTop(),
        y:ev.clientY + get_scrollTop()  - get_clientLeft()
    };
}
document.onmousemove = mouseMove;
document.onmouseup   = mouseUp;
var dragObject  = null;
var mouseOffset = null;
function getMouseOffset(target, ev){
    ev = ev || window.event;

    var docPos    = getPosition(target);
    var mousePos  = mouseCoords(ev);
    return {
        x:mousePos.x - docPos.x,
        y:mousePos.y - docPos.y
    };
}
function getPosition(e){
    var left = 0;
    var top  = 0;

    while (e.offsetParent){
        left += e.offsetLeft;
        top  += e.offsetTop;
        e     = e.offsetParent;
    }

    left += e.offsetLeft;
    top  += e.offsetTop;

    return {
        x:left,
        y:top
    };
}
function mouseMove(ev){
    ev           = ev || window.event;
    var mousePos = mouseCoords(ev);

    if(dragObject){
        dragObject.style.position = 'absolute';
        dragObject.style.top      = mousePos.y - mouseOffset.y + 'px';
        dragObject.style.left     = mousePos.x - mouseOffset.x + 'px';
        //dragObject.innerHTML     = '<span style="background-color:red;">top: ' + (mousePos.y - mouseOffset.y) + ', left: ' + (mousePos.x - mouseOffset.x) + '</span>';

        return false;
    }
}
function mouseUp(){
    dragObject = null;
}

function makeDraggable(item){
    if(!item) return;
    item.onmousedown = function(ev){
        dragObject  = this;
        mouseOffset = getMouseOffset(this, ev);
        return false;
    }
}
//end of - from http://www.webreference.com/programming/javascript/mk/column2/

