﻿function krpano() {
    return document.getElementById("krpanoDIV");
}

function krpanoSWF() {
    return document.getElementById("krpanoSWFObject");
}

function krpanoInterfaceCall(command) {
    var _krpanoSWF = krpanoSWF();

    if (_krpanoSWF == null || _krpanoSWF.call == undefined || !_krpanoSWF.get("progress.loaddone")) {
        setTimeout("krpanoInterfaceCall('" + command + "');", 100);
    }
    else {
        _krpanoSWF.call(command);
    }
}

function SetPanorama(panorama) {
    krpanoInterfaceCall("action(load-" + panorama + ", false)");
}
function SetSpot(spot) {
    if (spot != "00000000-0000-0000-0000-000000000000")
        krpanoInterfaceCall("action(show-" + spot + ", false)");
}
function SetSpotVisibility(state) {
    krpanoInterfaceCall("action(vvspotvisibility," + state + ", false)");
}
function SetAutomaticRotation(state) {
    krpanoInterfaceCall("action(vvautomaticrotation," + state + ", false)");
}
function SetSound(state) {
    krpanoInterfaceCall("action(vvsound," + state + ", false)");
}
function ShowHelp() {
    krpanoInterfaceCall("action(mm_showhelp)");
}

function CallTheServerPanorama(newLocation) {
    __doPostBack(flashUpdatePanelID, 'panorama|' + newLocation);
}
function CallTheServerSpot(newPoint) {
    __doPostBack(flashUpdatePanelID, 'spot|' + newPoint);
}
function CallTheServerSpotVisibility(newState) {
    __doPostBack(flashUpdatePanelID, 'visibility|' + newState);
}
function CallTheServerAutomaticRotation(newState) {
    __doPostBack(flashUpdatePanelID, 'autorotate|' + newState);
}
function CallTheServerSound(newState) {
    __doPostBack(flashUpdatePanelID, 'sound|' + newState);
}
function ShowAddress(address) {
    window.open(address);
}

function SetPanoramaPosition(toh, tov, fov) {
    krpanoSWF().call("lookto(" + toh + "," + tov + "," + fov + ")");
}
function GetPanoramaPosition() {
    var hlookat = Number(krpanoSWF().get("view.hlookat"));
    var vlookat = Number(krpanoSWF().get("view.vlookat"));
    var fov = Number(krpanoSWF().get("view.fov"));

    var position = new Array();
    position[0] = hlookat;
    position[1] = vlookat;
    position[2] = fov;

    return position;
}

function isOverSwf(mEvent) {
    var elem;
    if (mEvent.srcElement) {
        elem = mEvent.srcElement;
    } else if (mEvent.target) {
        elem = mEvent.target;
    }
    if (elem.nodeName.toLowerCase() == "object" || elem.nodeName.toLowerCase() == "embed") {
        if (elem.getAttribute("classid") == "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000") {
            return true;
        }
        if (elem.getAttribute("type") == "application/x-shockwave-flash") {
            return true;
        }
    }
    return false;
}

function onMouseWheel(event) {
    if (!event)
        event = window.event;

    if (isOverSwf(event)) {
        return cancelEvent(event);
    }

    return true;
}

function cancelEvent(e) {
    e = e ? e : window.event;
    if (e.stopPropagation)
        e.stopPropagation();
    if (e.preventDefault)
        e.preventDefault();
    e.cancelBubble = true;
    e.cancel = true;
    e.returnValue = false;
    return false;
}
if (window.addEventListener) window.addEventListener('DOMMouseScroll', onMouseWheel, false);
window.onmousewheel = document.onmousewheel = onMouseWheel;

