// common
if (typeof ghmxy_hitcollector=='undefined') {
    var ghmxy_hitcollector='cz.hit.gemius.pl';
}
var ghmxy_proto;
if(document.location && document.location.protocol) {
    ghmxy_proto = 'http'+((document.location.protocol=='https:')?'s':'')+'://';
} else {
    ghmxy_proto = 'http://';
}

// (c) by Gemius SA - gemius link map
// ver. 4.14
var ghmxy_images = new Array();
var ghmxy_last_x = -1;
var ghmxy_last_y = -1;
function ghmxy_checklink(node) {
    var imn    = null;
    if (node.nodeName == "#text") {
        if (node.nodeValue && node.nodeValue.replace(/[ \t\r\n]+/g,"").length > 0) {
            return node;
        }
        return null;
    }
    if (node.nodeName == "IMG") {
        return node;
    }
    if (node.childNodes) {
        for (var i = 0 ; i < node.childNodes.length ; i++) {
            var hn = ghmxy_checklink(node.childNodes[i]);
            if (hn != null) {
                if (hn.nodeName == "#text") return hn;
                if (imn == null) imn = hn;
            }
        }
    }
    return imn;
}
function ghmxy_toutf8(str) {
    function Hex(n) {
        var hexMap = '0123456789ABCDEF';
        return '%'+hexMap.charAt(n>>4)+hexMap.charAt(n&0xF);
    }
    var c,s,uc,ul;
    var dst = '';
    for (var i=0 ; i<str.length ; i++) {
        c = str.charCodeAt(i);
        if ((c>=0xDC00)&&(c<0xE000)) continue;
        if ((c>=0xD800)&&(c<0xDC00)) {
            i++;
            if (i>=str.length) continue;
            s = str.charCodeAt(i);
            if ((s<0xDC00)||(s>=0xDE00)) continue;
            c = ((c-0xD800)<<10)+(s-0xDC00)+0x10000;
        }
        if (c<=0x20 || c==0x22 || c==0x7C) {
            uc = Hex(c);
        } else if (c<0x80) {
            uc = String.fromCharCode(c);
        } else if (c<0x800) {
            uc = Hex(0xC0+(c>>6))+Hex(0x80+(c&0x3F));
        } else if (c<0x10000) {
            uc = Hex(0xE0+(c>>12))+Hex(0x80+(c>>6&0x3F))+Hex(0x80+(c&0x3F));
        } else {
            uc = Hex(0xF0+(c>>18))+Hex(0x80+(c>>12&0x3F))+Hex(0x80+(c>>6&0x3F))+Hex(0x80+(c&0x3F));
        }
        dst+=uc;
    }
    return dst;
}
function ghmxy_url_escape(str) {
    return ghmxy_toutf8(str).replace(/\x2520|\x2509|\x250[aA]|\x250[dD]/g,"")
}
function ghmxy_load() {
    if (document.getElementById && document.getElementsByTagName) {
        var allImages = document.getElementsByTagName("img");
        var allInputs = document.getElementsByTagName("input");
        var allForms = document.getElementsByTagName("form");
        var i;
        if (allImages) {
            for (i=0; i<allImages.length; i++) {
                if (typeof(allImages[i].src) != "undefined") {
                    allImages[i].ghmxy_src = allImages[i].src;
                }
            }
        }
        if (allInputs) {
            for (i=0; i<allInputs.length; i++) {
                if (typeof(allInputs[i].value) != "undefined") {
                    allInputs[i].ghmxy_value = allInputs[i].value;
                }
                if (typeof(allInputs[i].src) != "undefined") {
                    allInputs[i].ghmxy_src = allInputs[i].src;
                }
            }
        }
        if (allForms) {
            for (i=0; i<allForms.length; i++) {
                if (typeof(allForms[i].action) != "undefined") {
                    allForms[i].ghmxy_action = allForms[i].action;
                }
            }
        }
    }
}
function ghmxy_gettext(node) {
    var rettext="";
    if (node.nodeName=="#text") {
        return node.nodeValue;
    } else if (node.nodeName=="IMG") {
        var src="";
        var alt="";
        if (node.ghmxy_src) {
            src = node.ghmxy_src;
        } else {
            src = node.src;
        }
        if (node.alt) {
            alt = node.alt;
        }
        return "img:"+ghmxy_url_escape(src)+":"+alt;
    } else if (node.childNodes) {
        for (var i=0 ; i<node.childNodes.length ; i++) {
            if (node.childNodes[i].nodeName!='A') {
                rettext+=" "+ghmxy_gettext(node.childNodes[i]);
            }
        }
    }
    return rettext;
}
function ghmxy_checksum(itext,pos) {
    var cs=0;
    var b64map=".ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
    for (var n = pos; n < itext.length; n++) {
        cs = ((cs * 13) + itext.charCodeAt(n))&0xFFF;
    }
    return b64map.charAt((cs>>6)&0x3F)+b64map.charAt(cs&0x3F);
}

function ghmxy_escape(str,limit,csflag,doescape) {
    function Hex(n) {
        var hexMap = "0123456789ABCDEF";
        return hexMap.charAt(n>>4)+hexMap.charAt(n&0xF);
    }
    var c,s,uc,ul;
    var dst = "";
    for (var i=0 ; i<str.length ; i++) {
        c = str.charCodeAt(i);
        if ((c>=0xDC00)&&(c<0xE000)) continue;
        if ((c>=0xD800)&&(c<0xDC00)) {
            i++;
            if (i>=str.length) continue;
            s = str.charCodeAt(i);
            if ((s<0xDC00)||(s>=0xE000)) continue;
            c = ((c-0xD800)<<10)+(s-0xDC00)+0x10000;
        }
        if (c<0x80) {
            uc = escape(String.fromCharCode(c)).replace(/\+/g,"%2B").replace(/\//g,"%2F");
            if (c<=0x20) {
                ul=3;
            } else {
                ul=1;
            }
        } else if (c<0x800) {
            uc = "%u"+Hex(c>>8)+Hex(c&0xFF);
            ul = 2;
        } else if (c<0x10000) {
            uc = "%u"+Hex(c>>8)+Hex(c&0xFF);
            ul = 3;
        } else {
            uc = "%U"+Hex((c>>24)&0xFF)+Hex((c>>16)&0xFF)+Hex((c>>8)&0xFF)+Hex(c&0xFF);
            ul = 4;
        }
        limit -= ul;
        if (limit<0) {
            if (doescape==0) {
                dst = str.substr(0,i);
            }
            if (csflag) {
                return dst+"|"+ghmxy_checksum(str,i);
            } else {
                return dst;
            }
        }
        dst+=uc;
    }
    if (doescape==0) {
        dst = str;
    }
    if (csflag) {
        return dst+"|";
    } else {
        return dst;
    }
}
function ghmxy_node_desc(p) {
    var np=0;
    var ln=0;
    var ocln=0;
    var fform=0;
    var imgclick=0;
    var mhref="",ocmhref="",path="",ltext="",ocltext="",lid="";
    try {
        if (p.nodeName == "A") {
            var cp = ghmxy_checklink(p);
            if (cp != null && cp.nodeName == "IMG") p = cp;
        }
        if (p.nodeName=="INPUT" || p.nodeName=="BUTTON") {
            if (p.type=="submit") {
                var value="";
                if (p.ghmxy_value) {
                    value = p.ghmxy_value;
                } else {
                    value = p.value;
                }
                ltext="formsubmit:"+value;
                fform=1;
            }
            if (p.type=="image") {
                var src="";
                if (p.ghmxy_src) {
                    src = p.ghmxy_src;
                } else {
                    src = p.src;
                }
                ltext="formimage:"+ghmxy_url_escape(src);
                fform=1;
            }
        } else if (p.nodeName=="IMG") {
            imgclick=1;
        }
        while (p) {
            if (!ocln && p.attributes && p.attributes.getNamedItem) {
                ocnode = p.attributes.getNamedItem("onclick");
                if (ocnode && ocnode.nodeValue) {
                    ocln=p;
                    ocmhref="hmc="+ocnode.nodeValue;
                    ocltext=p.nodeName+" "+ghmxy_gettext(p);
                }
            }
            if (!ln) {
                if (p.nodeName=="AREA" && typeof(p.href)=="string" && p.href!="") {
                    ln=p;
                    mhref="hma="+p.href;
                    ltext = p.shape+" "+p.coords;
                }
                if (p.nodeName=="A" && typeof(p.href)=="string" && p.href!="") {
                    ln=p;
                    if (imgclick) {
                        mhref="hmi="+p.href;
                    } else {
                        mhref="hml="+p.href;
                    }
                    if (typeof(p.className)=="string" && p.className!="") {
                        ltext=p.className+" "+ghmxy_gettext(p);
                    } else {
                        ltext=ghmxy_gettext(p);
                    }
                }
                if (fform && p.nodeName=="FORM") {
                    if (typeof(p.ghmxy_action)=="string" && p.ghmxy_action!="") {
                        ln=p;
                        mhref="hmf="+p.ghmxy_action;
                    } else if (p.attributes && p.attributes.getNamedItem) {
                        osnode = p.attributes.getNamedItem("onsubmit");
                        if (osnode && osnode.nodeValue) {
                            ln=p;
                            mhref="hms="+p.attributes.getNamedItem("onsubmit").nodeValue;
                        }
                    }
                }
            }
            if (typeof(p.id)=="string" && (ln || ocln)) {
                if (p.id.substr(0,7)=="LinkID:") {
                    lid=p.id.replace(/\x2520/g,"_").substr(7,50);
                }
                if (p.id.substr(0,9)=="LinkArea:") {
                    pel=p.id.replace(/\x2520/g,"_").substr(9,10);
                    if (path) {
                        path=pel+"|"+path;
                    } else {
                        path=pel; 
                    } 
                }
            }
            np = 0;
            if (typeof(p.parentNode)=="object") {
                var pp = p.parentNode;
                if (pp && pp.childNodes) {
                    for (var ch=0 ; ch<pp.childNodes.length ; ch++) {
                        if (pp.childNodes[ch] == p) {
                            np=pp;
                        }
                    }
                }
            }
            p=np;
        }
        if (!ln) {
            mhref = ocmhref;
            ltext = ocltext;
        }
        if (mhref!="" || ltext!="" || path!="" || lid!="") {
            mhref=ghmxy_url_escape(mhref);
            ltext=ltext.replace(/[ \t\r\n]+/g," ").replace(/^ /,"").replace(/ $/,"").replace(/\x22|\||\x2520/g,"_");
            path=path.replace(/;|&|\//g,"_");
            lid=lid.replace(/;|&|\/|\|/g,"_");
            return {mhref:mhref , areapath:path , ltext:ltext , lid:lid};
        }
    } catch (_ev) {
    }
    return null;
}
function ghmxy_interface_node_desc(node) {
    node_desc = ghmxy_node_desc(node);
    if (node_desc) {
        // sarg = node_desc.ltext+"|"+node_desc.areapath
        // ref  = node_desc.mhref+"|"+node_desc.lid
        node_desc.mhref = ghmxy_escape(node_desc.mhref,230,1,0);
        node_desc.ltext = ghmxy_escape(node_desc.ltext,190,1,0);
        node_desc.areapath = ghmxy_escape(node_desc.areapath,50,0,0);
        node_desc.lid = ghmxy_escape(node_desc.lid,50,0,0);
    }
    return node_desc;
}
function ghmxy_send(mhref,areapath,ltext,lid) {
    var href=ghmxy_url_escape(new String(document.location.href));
    var ghmxy_url = ghmxy_proto+ghmxy_hitcollector+"/_"+(new Date()).getTime()+"/redot.gif?l=1&id="+ghmxy_identifier+"&arg=0&sarg="+ghmxy_escape(ltext,190,1,1)+"|"+ghmxy_escape(areapath,50,0,1)+"&ref=http%3A%2F%2F0.0.0.0%2F"+ghmxy_escape(mhref,230,1,1)+"|"+ghmxy_escape(lid,50,0,1)+"&href="+ghmxy_escape(href,499,0,1);
    var ghmxy_image = new Image();
    ghmxy_image.src = ghmxy_url;
    ghmxy_images[ghmxy_images.length] = ghmxy_image;
    var start = (new Date()).getTime();
    while (start+200>(new Date()).getTime());
}
function ghmxy_hm_click(ev) {
    var p=0;
    if (document.getElementById) {
        if (!window.event) { 
            p=ev.target;
        } else {
            p=window.event.srcElement;
        }
        node_desc = ghmxy_node_desc(p);
        if (node_desc) {
            ghmxy_send(node_desc.mhref,node_desc.areapath,node_desc.ltext,node_desc.lid);
        }
    }
}
// (c) by Gemius SA - gemius xy map
// ver. 2.6
if (typeof(ghmxy_type)=='undefined' || (ghmxy_type!='percent' && ghmxy_type!='absolute')) {
    var ghmxy_type='x';
} else {
    ghmxy_type = ghmxy_type.substr(0,1);
}
if (typeof(ghmxy_align)=='undefined' || (ghmxy_align!='left' && ghmxy_align!='center' && ghmxy_align!='right')) {
    var ghmxy_align='x';
} else {
    ghmxy_align = ghmxy_align.substr(0,1);
}
function ghmxy_get_window_params() {
    var w = window;
    var d = document;
    var dd;
    var wparam = 'r'+screen.width+','+screen.height;
    if (typeof w.innerWidth=='number') {
        wparam += '|s'+w.innerWidth+','+w.innerHeight+'|a'+ghmxy_align.substr(0,1)+'|t'+ghmxy_type.substr(0,1)+'|m'+w.pageXOffset+','+w.pageYOffset+'|p';
    } else if ( ((dd = d.documentElement) && (dd.clientWidth || dd.clientHeight)) || ((dd = d.body) && (dd.clientWidth || dd.clientHeight)) ) {
        wparam += '|s'+dd.clientWidth+','+dd.clientHeight+'|a'+ghmxy_align.substr(0,1)+'|t'+ghmxy_type.substr(0,1)+'|m'+dd.scrollLeft+','+dd.scrollTop+'|p';
    }
    if (d.body && typeof(d.body.scrollWidth)!='undefined' && typeof(d.body.scrollHeight)!='undefined') {
        wparam += d.body.scrollWidth+','+d.body.scrollHeight;
    }
    return wparam;
}
function ghmxy_reset() {
    ghmxy_last_x = -1;
    ghmxy_last_y = -1;
}
function ghmxy_sendxy(x,y) {
    if (x<ghmxy_last_x-1 || x>ghmxy_last_x+1 || y<ghmxy_last_y-1 || y>ghmxy_last_y+1) {
        var href = new String(document.location.href);
        var ghmxy_url = ghmxy_proto+ghmxy_hitcollector+'/_'+(new Date()).getTime()+'/redot.gif?l=2&id='+ghmxy_identifier+'&arg=0&sarg='+ghmxy_get_window_params()+'&href='+escape(href.substring(0,499))+'&ref=http%3A%2F%2F0.0.0.0%2Fxy%3D'+x+':'+y;
        var ghmxy_image = new Image();
        ghmxy_image.src = ghmxy_url;
        ghmxy_images[ghmxy_images.length] = ghmxy_image;
        ghmxy_last_x = x;
        ghmxy_last_y = y;
    }
}
function ghmxy_xy_click(ev) {
    ghmxy_sendxy(ev.clientX,ev.clientY);
}
function ghmxy_flash(id,xx,yy) {
    var ghmxy_obj = document.getElementById(id);
        if (ghmxy_obj) {
        var x=0;
        var y=0;
        if (ghmxy_obj.offsetParent) {
            do {
                x += ghmxy_obj.offsetLeft;
                y += ghmxy_obj.offsetTop;
                ghmxy_obj = ghmxy_obj.offsetParent;
            } while (ghmxy_obj);
        } else {
            if (ghmxy_obj.x) {
                x = ghmxy_obj.x;
            }
            if (ghmxy_obj.y) {
                y = ghmxy_obj.y;
            }
        }
        x+=xx;
        y+=yy;
        ghmxy_sendxy(x,y);
    }
}
// common
function ghmxy_click(ev) {
    ghmxy_xy_click(ev);
    ghmxy_hm_click(ev);
}
function ghmxy_add_event(ob,evname,fn) {
    if (ob.attachEvent) {
        ob.attachEvent("on"+evname,fn);
    } else if(ob.addEventListener) {
        ob.addEventListener(evname,fn, false);
    }
}
if (typeof ghmxy_identifier != "undefined") {
    ghmxy_identifier = ghmxy_identifier.replace(/([a-zA-Z0-9._]+).*/,'$1');
    // common:
    ghmxy_add_event(document,"click",ghmxy_click);
    // link map:
    ghmxy_add_event(window,"load",ghmxy_load);
    // xy map:
    ghmxy_add_event(window,"scroll",ghmxy_reset);
    ghmxy_add_event(window,"resize",ghmxy_reset);
}
 
