var timerNastavObrazek
var vizualyHome;
var aktivniVizual = 0;
var automaticke = false;
var kombinace = false;
var duration = 500;       //doba změny obrázku
var steps = 10;            //počet kroků
var auto_delay = 1000;      // doba zobrazení obrázku v 0% průhlednosti
var isProgress = false;
var timer4;
auto_delay += duration * 2;
function vytvorXHR() {
    var xhr2;
    try {
        xhr2 = new XMLHttpRequest();
    } catch (e) {
        var MSXmlVerze = new Array('MSXML2.XMLHttp.6.0', 'MSXML2.XMLHttp.5.0', 'MSXML2.XMLHttp.4.0', 'MSXML2.XMLHttp.3.0', 'MSXML2.XMLHttp.2.0', 'Microsoft.XMLHttp');
        for (var i = 0; i <= MSXmlVerze.length; i++) {
            try {
                xhr2 = new ActiveXObject(MSXmlVerze[i]);
                break;
            } catch (e) {
                //vzniklou chybu ignoruji a pokračuji nastavením další verze
            }
        }
    }
    if (!xhr2)
        alert("Došlo k chybě při vytváření objektu XMLHttpRequest!");
    else
        return xhr2;
}
var xhr = vytvorXHR();
function reloadSearch() {
    
    try {
        xhr.open("GET", "./include/" + url + query);
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        try {
            xhr.overrideMimeType('text/html');
        } catch (e) { }
        xhr.onreadystatechange = insertData;
        xhr.send(null);
    }
    catch (e) {
        alert("ERROR" + e);
    }

}

function insertData(id) {
    if (xhr.readyState == 4) {

        //if (xhr.status == 200) {
        div = document.getElementById("picture-box");
        div.innerHTML = xhr.responseText;
        alertMe();
        loadPlayer(id)
        document.getElementById("picture-box").style.display = "block";
        
        //} else {
        //alert('nepodařilo se vložit data');
        //}
    }
}
var XhrResponse
function insertHome(id) {
    if (xhr.readyState == 4) {

        //if (xhr.status == 200) {
        XhrResponse = xhr.responseText;
        //} else {
        //alert('nepodařilo se vložit data');
        //}
    }
}

function setContentHome() {
    if (XhrResponse != "") {
        if (document.getElementById("vizual_home")) {
            div = document.getElementById("vizual_home");
            div.innerHTML = XhrResponse;
            XhrResponse = "";
            setBody();

            var box = document.getElementById("vizual_zobrazeny").parentNode;
            var imageBox = document.getElementById("vizual_zobrazeny")

            var newImageBox = document.createElement('img');
            newImageBox.setAttribute("id", "vizual_zobrazeny");
            newImageBox.setAttribute("src", imageBox.src);
            newImageBox.setAttribute("width", imageBox.width + "px");
            newImageBox.setAttribute("height", imageBox.height + "px");
            addEvent(newImageBox)
        }
    }
    else {
        timerNastavObrazek = setTimeout("setContentHome()", 100);
    }
}
function insertVideo(id) {
    if (xhr.readyState == 4) {

        //if (xhr.status == 200) {
        div = document.getElementById("picture-box");
        div.innerHTML = xhr.responseText;
        document.getElementById("picture-box").style.display = "block";
        alertMe();
        loadMovie();
        
        //document.getElementById("picture-box").style.visibility = "visible";
        
        
        //} else {
        //alert('nepodařilo se vložit data');
        //}
    }
}
function ShowPic(id_vizualu) {
    var width = getScreenSizeX() - 1 + "px";
    var height = getScreenSizeY() - 1 + "px";
    var left = getScrollXY()[0] + "px";
    var top = getScrollXY()[1] + "px";
    try {
        xhr.open("GET", "./ajax/show_picture.asp?id_vizualu=" + id_vizualu + "&width=" + width + "&height=" + height + "&left=" + left + "&top=" + top);
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        try {
            xhr.overrideMimeType('text/html');
        } catch (e) { }
        xhr.onreadystatechange = function() { insertData(id_vizualu) };
        xhr.send(null);
    }
    catch (e) {
        alert("ERROR" + e);
    }
    return false;
}
function ShowVideo(id_vizualu) {
    var width = getScreenSizeX() + "px";
    var height = getScreenSizeY() + "px";
    var left = getScrollXY()[0] + "px";
    var top = getScrollXY()[1] + "px";
    try {
        xhr.open("GET", "./ajax/show_picture.asp?id_vizualu=" + id_vizualu + "&width=" + width + "&height=" + height + "&left=" + left + "&top=" + top);
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        try {
            xhr.overrideMimeType('text/html');
        } catch (e) { }
        xhr.onreadystatechange = function() { insertVideo(id_vizualu) };
        xhr.send(null);
    }
    catch (e) {
        alert("ERROR" + e);
    }
    return false;
}

function getScreenSizeX() {
    if (document.body.clientWidth) {
        return document.body.clientWidth;
    }
    if (document.documentElement.clientWidth) {
        return document.documentElement.clientWidth;
    }
    if (window.innerWidth) {
        return window.innerWidth;
    }
    
}

function getScreenSizeY() {
    if (document.body.clientHeight) {
        return document.body.clientHeight;
    }
    if (document.documentElement.clientHeight) {
        return document.documentElement.clientHeight;
    }
    if (window.innerHeight) {
        return window.innerHeight;
    }

}
function getBodyHeight() {

    return document.documentElement.clientHeight;
    
}
function getObjectSizeY(id) {
    if (!document.getElementById(id)) {
        return 0;
    }
    obj = document.getElementById(id);
    if (obj.clientHeight) {
        return obj.clientHeight;
    } else {
        if (document.documentElement.clientHeight) {
            return document.documentElement.clientHeight;
        } else {
            if (window.innerHeight) {
                return window.innerHeight;
            } 
        }
    }
}


function alertMe() {
    var hLista = getObjectSizeY("vizual_lista");
    
    if (document.getElementById("vizual").tagName == "IMG" && !document.getElementById("vizual").complete) {
        setTimeout("alertMe()", 100);
    } else {
    var hImg = getObjectSizeY("vizual") + 40;
        var menu = getObjectSizeY("left") + 346;
        var prava = getObjectSizeY("right");
        var vyska = hImg + 40 + getScrollXY()[1];
        var shadow;
        if (prava > menu) {
            if (prava > vyska) {
                shadow = prava;
            } else {
            shadow = vyska;
            }
        } else {
            if (menu > vyska) {
                shadow = menu;
            } else {
                shadow = vyska;
            }
        }
        if (window.innerHeight) {
            if (window.innerHeight > shadow) {
                shadow = window.innerHeight;
            }
        }
        if (getBodyHeight() > shadow) {
            shadow = getBodyHeight();
        }
        document.getElementById("shadow").style.height = shadow + "px";
        setBody();
        
    }
}

function HidePic() {
    document.getElementById("picture-box").style.display = "none";
    document.getElementById("picture-box").innerHTML = "";
    setBody();
}

function Show(nazev) {
    var div = document.getElementById("popis" + nazev);
    var obr = document.getElementById("obrazek" + nazev);
    obr.className = "visible"
	div.style.display = 'block';
}

function Hide(nazev) {
    var div = document.getElementById("popis" + nazev);
    var obr = document.getElementById("obrazek" + nazev);
    obr.className = ""
    div.style.display = 'none';
}

function showMenu(id) {
	if (document.getElementById("submenu_" + id)) {
		document.getElementById("submenu_" + id).style.display = 'block';
	}
}
var staticMenu = 0;
function hideMenu(id) {
    if (document.getElementById("submenu_" + id) && staticMenu != id) {
		document.getElementById("submenu_" + id).style.display = 'none';
}

}

function getWindowSize() {
    var myWidth = 0, myHeight = 0;
    if (typeof (window.innerWidth) == 'number') {
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
        myWidth = document.documentElement.clientWidth;
        myHeight = document.documentElement.clientHeight;
    } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
    }
    return [myWidth, myHeight];
}

function getScrollXY() {

    var scrOfX = 0, scrOfY = 0;
    if (typeof (window.pageYOffset) == 'number') {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    return [scrOfX, scrOfY];
    
}

function loadPlayer(id) {
    var flashvars = { xml_file: "test-panorama-xml.asp?id_vizualu=" + id };
    var params = { allowscriptaccess: "sameDomain", allowFullScreen: "true", menu: "false" };
    var attributes = { id: "myDynamicContent", name: "myDynamicContent" };
    swfobject.embedSWF("./panoramaplayer/FPP.swf", "FPP", "100%", "100%", "9.0.0", "./include/expressInstall.swf", flashvars, params, attributes);
}

function loadMovie(){
flowplayer("playerA", "./include/flowplayer-3.1.4.swf", {
				canvas: {
					backgroundColor: "#000000"
				},
				clip: { 
					autoPlay: true, 
					autoBuffering: true 
				},
				plugins: {
					controls: {
						tooltipColor: '#5F747C',
						bufferColor: '#292828',
						volumeSliderGradient: 'none',
						volumeSliderColor: '#000000',
						borderRadius: '0px',
						progressColor: '#000000',
						tooltipTextColor: '#ffffff',
						buttonOverColor: '#ffffff',
						progressGradient: 'medium',
						timeColor: '#000000',
						buttonColor: '#3d3d3d',
						sliderColor: '#000000',
						durationColor: '#ffffff',
						backgroundGradient: 'none',
						backgroundColor: '#000000',
						sliderGradient: 'none',
						timeBgColor: '#555555',
						bufferGradient: 'none',
						height: 20,
						opacity: 1.0
					}
				}
			});

}
function showMore(id) {
    document.getElementById('more_' + id).style.display = "block";
    document.getElementById('n_p').value = "on";
} 
function hideMore(id) {
    document.getElementById('more_' + id).style.display = "none";
    document.getElementById('n_p').value = "no";
}

function initTime(d, s, a) {
    duration = d;       //doba změny obrázku
    steps = s;            //počet kroků
    auto_delay = a;      // doba zobrazení obrázku v 0% průhlednosti
    auto_delay += duration * 2;
}
function vizual_next() {
    if (!isProgress) {
        isProgress = true;
        if (vizualyHome.length > aktivniVizual + 1) {
            ZmenitVizual(aktivniVizual + 1);
        } else {
            ZmenitVizual(0)
        }
    }
    return false;
}
function vizual_auto() {
    if (automaticke) {
        automaticke = false;
        document.getElementById('vizual_rucne').style.display = "none";
        document.getElementById('vizual_auto').style.display = "inline";
        
    } else {
    automaticke = true;
    document.getElementById('vizual_rucne').style.display = "inline";
    document.getElementById('vizual_auto').style.display = "none";
        autoPrepinani(true);
    }
    return false;
}

function autoPrepinani(first) {
    if (automaticke) {
        if (!first) {
            vizual_next();
        }
    }
}

function vizual_prev() {
    if (!isProgress) {
        isProgress = true;
        if (aktivniVizual > 0) {
            ZmenitVizual(aktivniVizual - 1);
        } else {
            ZmenitVizual(vizualyHome.length - 1);
        }
    }
    return false;
}

function ZmenitVizual(index) {
    var oldIndex = aktivniVizual;
    aktivniVizual = index;
    XhrResponse = ""
    clearTimeout(timer4)
    try {
        
        setBody();
        fadeOut();
        xhr.open("GET", "./ajax/home_vizual.asp?id_vizualu=" + vizualyHome[aktivniVizual] + "&width=" + getImagesWidth() + "&height=" + getImagesHeight());
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        try {
            xhr.overrideMimeType('text/html');
        } catch (e) { }
        xhr.onreadystatechange = function() { insertHome(vizualyHome[oldIndex]) };
        xhr.send(null);
        
    }
    catch (e) {
        alert("ERROR: " + e);
    }
}

function clearDropDown(obj, prefix) {
    kombinace = document.getElementById(prefix+'k_f').checked;
    if (!kombinace) {
        var inputs = document.getElementById(prefix + "pv-r23").getElementsByTagName("select");
        for (i = 0; i < inputs.length; i++) {
            if (inputs[i] != obj) {
                inputs[i].selectedIndex = 0;
            }

        }
    }
}

function kombineFormular(obj, prefix) {
    kombinace = obj.checked;
    clearDropDown(obj, prefix);
}

function clearFormular(prefix) {
    if (!document.getElementById(prefix + "k_f").checked) {
        if (prefix != "v_") {
            document.getElementById('p_vizualizace').checked = false;
            checkAllNoSubmit('vizualizace', 'v_')
        }
        if (prefix != "a_") {
            document.getElementById('p_animace').checked = false;
            checkAllNoSubmit('animace', 'a_')
        }
        if (prefix != "m_") {
            document.getElementById('p_modely').checked = false;
            checkAllNoSubmit('modely', 'm_')
        }
        if (prefix != "g_") {
            document.getElementById('p_grafika').checked = false;
            checkAllNoSubmit('grafika', 'g_')
        }
    }
    document.getElementById('galerie-form').submit()
}

function setBody() {
    var hLista = getObjectSizeY("vizual_lista");
    if (document.getElementById("vizual") && document.getElementById("vizual").tagName == "IMG" && !document.getElementById("vizual").complete) {
        setTimeout("alertMe()", 100);
    } else {
        document.getElementById("right").style.height = "auto";
        var hImg = getObjectSizeY("vizual") + 40;
        var menu = getObjectSizeY("left") + 346;
        var prava = getObjectSizeY("right");
        var vyska = hImg + 40 + getScrollXY()[1];
        var shadow;
        if (prava > menu) {
            if (prava > vyska) {
                shadow = prava;
            } else {
                shadow = vyska;
            }
        } else {
            if (menu > vyska) {
                shadow = menu;
            } else {
                shadow = vyska;
            }
        }
        if (window.innerHeight) {
            if (window.innerHeight > shadow) {
                shadow = window.innerHeight;
            }
        }
        if (getBodyHeight() > shadow) {
            shadow = getBodyHeight();
        }
        document.getElementById("right").style.height = shadow + "px";
        
    }
}

function getImagesHeight() {

    var winW = 630, winH = 460;

    if (document.body.offsetWidth) {
        winW = document.body.offsetWidth;
        winH = document.body.offsetHeight;
    }
    if (window.innerWidth) {
        winW = window.innerWidth;
        winH = window.innerHeight;
    }
    winW = winW - 312 - getScrollerWidth();
    winH = winH - 30;



    return winH;
}
function getImagesWidth() {

    var winW = 630, winH = 460;

    if (document.body.offsetWidth) {
        winW = document.body.offsetWidth;
        winH = document.body.offsetHeight;
    }
    if (window.innerWidth) {
        winW = window.innerWidth;
        winH = window.innerHeight;
    }
    winW = winW - 312 - getScrollerWidth();
    winH = winH - 30;



    return winW;
}
function showFirstHome(id) {
    ZmenitVizual(0);
    //alert(winW + "/" + winH);
}
function getScrollerWidth() {
    var scr = null;
    var inn = null;
    var wNoScroll = 0;
    var wScroll = 0;
    scr = document.createElement('div');
    scr.style.position = 'absolute';
    scr.style.top = '-1000px';
    scr.style.left = '-1000px';
    scr.style.width = '100px';
    scr.style.height = '50px';
    scr.style.overflow = 'hidden';
    inn = document.createElement('div');
    inn.style.width = '100%';
    inn.style.height = '200px';
    scr.appendChild(inn);
    document.body.appendChild(scr);
    wNoScroll = inn.offsetWidth;
    scr.style.overflow = 'auto';
    wScroll = inn.offsetWidth;
    document.body.removeChild(
        document.body.lastChild);
    return (wNoScroll - wScroll);
}

function setOpacity(level) {
    document.getElementById("vizual_home").style.opacity = level;
    document.getElementById("vizual_home").style.MozOpacity = level;
    document.getElementById("vizual_home").style.KhtmlOpacity = level;
    document.getElementById("vizual_home").style.filter = "alpha(opacity=" + (level * 100) + ");";
}

function fadeIn() {
    for (i = 0; i <= 1; i += (1 / steps)) {
        setTimeout("setOpacity(" + i.toFixed(2) + ")", i * (duration / 2));
    }
    timer2 = setTimeout("clearProgress()", (duration / 2));
    timer4 = setTimeout('autoPrepinani(false)', (duration / 2) + auto_delay);

}

function fadeOut() {
    isProgress = true;
    for (i = 0; i <= 1; i += (1 / steps)) {
        setTimeout("setOpacity(" + (1 - i).toFixed(2) + ")", i * (duration / 2));
    }
    timer2 = setTimeout("setContentHome()", (duration / 2) + 100);
}

function clearProgress() {
    isProgress = false;
}

function addEvent(el) {
    if (el.addEventListener) {
        el.addEventListener("load", fadeIn, false);
    } else if (el.attachEvent) {
        try {
            el.attachEvent("onload", fadeIn);
        } catch (e) { }
    } else {
        el.type = myFunction;
    }
}

function addEvent2(el, id, content) {
    if (el.addEventListener) {
        el.addEventListener("mousemove", reposition, false);
    } else if (el.attachEvent) {
        try {
            el.attachEvent("onmousemove", reposition);
        } catch (e) { }
    } else {
        el.type = reposition;
    }
}
