function getHash()
{
var xmlhttp;
var hash = "0";
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    hash = encodeURIComponent(xmlhttp.responseText);
    }
  }
xmlhttp.open("GET","/snaphash.php",false);
xmlhttp.send();
return hash;
}

var F2 = {
    Key: null,
    ParentID: null,
    ClassName: null,
    Cursor: {
        x: 0,
        y: 0
    },
    Dimensions: {
        w: 0,
        h: 0,
        position: null,
        offset_x: 0,
        offset_y: 0,
        im: 0,
        iw: 0,
        ih: 0
    },
    bolInitDone: null,
    Url: null,
    Bubble: document.getElementById("WSBubble") || {},
    opacTimer: null,
    Method: null,
	
    init: function(){
        if (F2.bolInitDone != null) {
            return
        }
        F2.ClassName = "websnapr";
        F2.addEvent(window, ["mousemove"], F2.getCurPos);
        F2.addEvent(window, ["resize"], F2.getDimensions);
        F2.addEvent(window, ["scroll"], F2.getDimensions);
        var B = F2.fetchElements();
        var A = B.length;
        for (i = 0; i < A; i++) {
            F2.Url = B[i].href;
            if (F2.BubbleStyle == "i") {
                var C = document.createElement("img");
                C.setAttribute("src", "/images/bubble/bubble.gif");
                C.setAttribute("border", 0);
                C.className = "wsbubbleicon";
                F2.addEvent(C, ["mouseover"], function(){
                    F2.showBubble(this.parentNode)
                });
                F2.addEvent(C, ["mouseout"], function(){
                    F2.hideBubble()
                });
                B[i].appendChild(C)
            }
            else {
                F2.addEvent(B[i], ["mouseover"], function(){
                    F2.showBubble(this)
                });
                F2.addEvent(B[i], ["mouseout"], function(){
                    F2.hideBubble()
                })
            }
        }
        F2.createBubble();
        F2.createCSS();
        F2.bolInitDone = true
    },
    createCSS: function(){
        if (document.createStyleSheet) {
            with (document.createStyleSheet()) {
                addRule("#WSBubble", "display:none; overflow:hidden; position: absolute;");
                addRule("#WSBubble img", "margin:9px;");
                addRule("#WSBubble.small", "width:220px; height:170px; background-image:url(/images/bubble/wsbg_0.gif);");
                addRule(".wsbubbleicon", "margin-left:5px")
            }
        }
        else {
            var head = document.getElementsByTagName("head")[0];
            var style = document.createElement("style");
            style.setAttribute("type", "text/css");
            var csstext = "#WSBubble		{ display:none; overflow:hidden; position: absolute; }\n";
            csstext += "#WSBubble img 	{ margin:9px; }\n";
            csstext += "#WSBubble.small { width:220px; height:170px; background:url(/images/bubble/wsbg_0.gif); }\n";
            csstext += ".wsbubbleicon {margin-left:5px; }\n";
            var css = document.createTextNode("\n<!--\n" + csstext + "\n-->\n");
            style.appendChild(css);
            head.appendChild(style)
        }
    },
    showBubble: function(D){
        var B = D.href;
        F2.getCurPos();
        F2.getDimensions(D);
        var C = F2.Dimensions;
        F2.Url = B;
        var A = F2.createWSUrl(D.className);
        F2.Bubble = document.getElementById("WSBubble");
        F2.Bubble.style.left = (F2.Cursor.x + F2.Dimensions.offset_x) + "px";
        F2.Bubble.style.top = (F2.Cursor.y + F2.Dimensions.offset_y) + "px";
        F2.Bubble.style.display = "block";
        F2.Bubble.innerHTML = '<img src="' + A + '">';
        F2.Bubble.className = F2.getImgSize(D.className, "cn")
    },
    hideBubble: function(){
        clearTimeout(F2.opacityTimer);
        F2.Bubble = document.getElementById("WSBubble");
        F2.Bubble.innerHTML = "";
        F2.Bubble.style.display = "none"
    },
    createBubble: function(){
        var A = document.createElement("div");
        A.id = "WSBubble";
        A.className = "small";
        document.getElementsByTagName("body")[0].appendChild(A)
    },
    createWSUrl: function(B){
        B = (B == "" ? F2.ClassName : B);
        var A = Math.random(100);
		var hash = getHash();
        return ("http://images.websnapr.com/?size=s&key=" + encodeURIComponent(F2.Key) + "&hash=" + hash + "&url=" + encodeURIComponent(F2.Url) + "&nocache=" + A);
		//url=" + encodeURIComponent(F2.Url) + "&key=" + encodeURIComponent(F2.Key) + "&nocache=" + A + "&size=s&src=bubble")
    },
    getDimensions: function(B){
        var G = B.className;
        var L = F2.Cursor.x;
        var I = F2.Cursor.y;
        var J = F2.getImgSize(G, "m");
        var A = F2.getImgSize(G, "w");
        var N = F2.getImgSize(G, "h");
        var D = F2.Dimensions;
        if (document.documentElement) {
            var F = document.documentElement
        }
        var E = window;
        if (typeof(E.innerWidth) == "number") {
            var M = E.innerWidth;
            var C = E.innerHeight;
            var K = E.pageXOffset;
            var H = E.pageYOffset
        }
        else {
            if (F && (F.clientWidth || F.clientHeight)) {
                var M = F.clientWidth;
                var C = F.clientHeight;
                var K = F.scrollLeft;
                var H = F.scrollTop
            }
        }
        D.w = M;
        D.h = C;
        if ((L - K) < A && (I - H) < N) {
            D.position = "TL";
            D.offset_x = J;
            D.offset_y = J
        }
        if ((L - K) > (M / 2) && (I - H) < N) {
            D.position = "TR";
            D.offset_x = -A - J;
            D.offset_y = J
        }
        if ((L - K) < A && (I - H) > (C / 2)) {
            D.position = "BL";
            D.offset_x = J;
            D.offset_y = -N - J
        }
        if ((L - K) > (M / 2) && (I - H) > (C / 2)) {
            D.position = "BR";
            D.offset_x = -A - J;
            D.offset_y = -N - J
        }
        if (D.position == null) {
            D.position = "TL";
            D.offset_x = J;
            D.offset_y = J
        }
    },
    getImgSize: function(B, A){
        var C = "";
        if (A == "w") {
            C = 220
        }
        if (A == "h") {
            C = 170
        }
        if (A == "m") {
            C = 20
        }
        if (A == "cn") {
            C = "small"
        }
        return C
    },
    addEvent: function(E, B, D){
        var C;
        for (var A = 0; A < B.length; A++) {
            C = B[A];
            if (E.attachEvent) {
                E["e" + C + D] = D;
                E[C + D] = function(){
                    E["e" + C + D](window.event)
                };
                E.attachEvent("on" + C, E[C + D])
            }
            else {
                E.addEventListener(C, D, false)
            }
        }
    },
    fetchElements: function(){
        var targetUrlObj = new Array();
        var tagObj = new Array();
        var parentObj = new Array();
        if (F2.ParentID != null) {
            if (F2.Method === "c") {
                var parentObj = F2.getElementsByClassName(F2.ParentID)
            }
            else {
                parentObj[0] = document.getElementById(F2.ParentID)
            }
            var bolForceClass = false
        }
        else {
            parentObj[0] = document;
            var bolForceClass = (F2.Method == "w")
        }
        for (var k = 0; k < parentObj.length; k++) {
            tagObj = parentObj[k].getElementsByTagName("a");
            for (i = 0; i < tagObj.length; i++) {
                var ob = tagObj[i];
                if (ob.href.search(eval("/^(http:|https:)/g")) == -1) {
                    continue
                }
                if (bolForceClass) {
                    var arrClasses = ob.className.split(" ");
                    var bol_found = false;
                    for (var j = 0; j < arrClasses.length; j++) {
                        bol_found = bol_found || arrClasses[j] == F2.ClassName
                    }
                    if (!bol_found) {
                        continue
                    }
                }
                targetUrlObj = F2.mergeArray(targetUrlObj, ob)
            }
        }
        return targetUrlObj
    },
    getCurPos: function(C){
        var B, A;
        var D = {
            x: 0,
            y: 0
        };
        if (!C) {
            C = window.event
        }
        if (!C) {
            return
        }
        if (typeof(C.pageX) == "number") {
            B = C.pageX;
            A = C.pageY
        }
        else {
            if (typeof(C.clientX) == "number") {
                B = C.clientX;
                A = C.clientY;
                if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
                    B += document.body.scrollLeft;
                    A += document.body.scrollTop
                }
                else {
                    if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
                        B += document.documentElement.scrollLeft;
                        A += document.documentElement.scrollTop
                    }
                }
            }
            else {
                return
            }
        }
        F2.Cursor = {
            x: B,
            y: A
        }
    },
    mergeArray: function(B){
        var A = B;
        for (var C = 1; C < arguments.length; C++) {
            A = A.concat(arguments[C])
        }
        return A
    },
    getElementsByClassName: function(D){
        var A, C = new Array(), B = 0, E;
        if (document.all) {
            A = document.all
        }
        else {
            if (document.getElementsByTagName && !document.all) {
                A = document.getElementsByTagName("*")
            }
        }
        for (i = 0; i < A.length; i++) {
            if (A[i].className.indexOf(D) != -1) {
                E = "," + A[i].className.split(" ").join(",") + ",";
                if (E.indexOf("," + D + ",") != -1) {
                    C[B] = A[i];
                    B++
                }
            }
        }
        return C
    }
};
F2.Key = "Yky1YgzzOPx6";
F2.Method = "w";
F2.BubbleStyle = "i";
F2.Domain = "images";
F2.addEvent(window, ["load"], F2.init);

