﻿
function profitourOnLoad() {
    if (typeof profitourBox != "undefined")
        profitourBox.onPageLoad();
}

function ProfiTourBox() {

    this.frame = null;
    this.frameID = null;
    this.sameDomain = false;
    this.newSrc = null;
    this.loaded = false;
    this.scroll = false;

    this.addLoadListener = function(fn) {
        try {
            if (typeof window.addEventListener != 'undefined') //W3C
                window.addEventListener('load', fn, false);
            else if (typeof document.addEventListener != 'undefined') //old Mozilla
                document.addEventListener('load', fn, false);
            else if (typeof window.attachEvent != 'undefined') //IE
                window.attachEvent('onload', fn);
            else {
                var oldfn = window.onload;
                if (typeof window.onload != 'function')
                    window.onload = fn;
                else
                    window.onload = function() {
                        oldfn();
                        fn();
                    };
            }
        } catch (ex) {
            //smula, zadne alerty na cizim webu
        }
    }

    this.findPos = function(obj) {
        var ret = { left: 0, top: 0 };
        if (obj.offsetParent) {
            while (obj.offsetParent) {
                ret.left += obj.offsetLeft - obj.scrollLeft; ret.top += obj.offsetTop - obj.scrollTop;
                var position = '';
                if (obj.style && obj.style.position) position = obj.style.position.toLowerCase();
                if (position == 'absolute' || position == 'relative') break;
                while (obj.parentNode != obj.offsetParent) {
                    obj = obj.parentNode;
                    ret.left -= obj.scrollLeft; ret.top -= obj.scrollTop;
                }
                obj = obj.offsetParent;
            }
        } else {
            if (obj.x) ret.left += obj.x;
            if (obj.y) ret.top += obj.y;
        }
        return ret;
    }

    this.scrollOffset = function() {
        var ret = { x: 0, y: 0 };
        if (typeof window.pageYOffset != "undefined") { //Netscape compliant
            ret.x = window.pageXOffset; ret.y = window.pageYOffset;
        } else if (document.body && typeof document.body.scrollLeft != "undefined" && (document.body.scrollLeft || document.body.scrollTop)) {  //DOM compliant
            ret.x = document.body.scrollLeft; ret.y = document.body.scrollTop;
        } else if (document.documentElement && typeof document.documentElement.scrollLeft != "undefined" && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {    //IE6 standards compliant mode
            ret.x = document.documentElement.scrollLeft; ret.y = document.documentElement.scrollTop;
        }
        return ret;
    }

    this.setSameDomain = function() {
        if (!this.sameDomain) {
            var domain = document.domain, host = document.location.host;
            host = host.substring(host.replace(/[^.]+\.[^.]+$/, "").length);
            document.domain = host;
            this.sameDomain = true;
        }
    }

    this.onPageLoad = function() {
        this.loaded = true;
        if (this.frameID) {
            this.initFrame(this.frameID);
            this.frameID = null;
            try {
                this.frame.contentWindow.trySetParentSize();
            } catch (ex) {
            }
        }
        if (this.newSrc && this.frame) {
            this.frame.src = this.newSrc;
            this.newSrc = null;
        }
    }

    this.onFrameLoad = function() {
        if (this.scroll && this.frame && this.findPos(this.frame).top < this.scrollOffset().y)
            this.frame.scrollIntoView(true);
        else    //Az napodruhe
            this.scroll = true;
    }

    this.setFrameHeight = function(h) {
        if (this.frame)
            this.frame.height = h;
    }

    this.initFrame = function(frameID) {
        var h;
        this.frame = document.getElementById(frameID);
        if (this.frame) {
            this.setSameDomain();
            h = document.location.hash;
            if (h && h.length > 10 && h.substr(0, 10).toLowerCase() == "#profitour" && this.frame.src && this.frame.src.length > 0) {
                h = h.substr(10);
                if (this.frame.src.charAt(this.frame.src.length - 1) == "/" && h.charAt(0) == "/")
                    h = h.substr(1);
                if (this.loaded)    //Co kdyby se nekdo opozdil
                    this.frame.src += h;
                else { //Bezny postup
                    this.newSrc = this.frame.src.replace(/\s+$/, "") + h;
                }
            }
        } else if (!this.loaded) {
            this.frameID = frameID; //opozdene az v onPageLoad
        }
    }

    this.addLoadListener(profitourOnLoad);
}

var profitourBox = new ProfiTourBox();

profitourBox.initFrame("ifrProfiTour");


