﻿var map, marker, networkLink, GMap, SMap, BMap, control2D, entityMarker;
var firstTimeLoading = true;
var dialog = false;
var currentMap = "Google";
var firstFly = true;
var firstMapChange = false;
var isRotate = false;
var haspub = false;
var pubmarkersArray = [];

function MapCreator(entity)
{
    GMap = new GoogleMap();
    SMap = new SapoMap();
    BMap = new BingMap();

    SMap.createMap();
    GMap.createMap();
    BMap.createMap();

    map = GMap;

    var windowResize = new WindowResizer();


    $('#birdseye').hide();

    $('#tabs').tabs({
   //     select: function(event, ui) { }
    });

    $(window).bind("resize", function(e)
    {
        windowResize.onWindowResize();
    });

    windowResize.onWindowResize();
    //  windowResize.show3D_Map();

    document.getElementById("btn_map3D").className = 'ui-state-hover ui-corner-all';
    document.getElementById("Button3").disabled = true;
    document.getElementById("btn_Map").disabled = true;
    document.getElementById("btn_Hyb").disabled = true;
    document.getElementById("btn_Sat").disabled = true;
}

function mapTypeChange(targetMap)
{
    var windowResize = new WindowResizer();

    if (isRotate == true)
    {
        GMap._stopRotator();
    }

    if (currentMap == "Sapo" && targetMap != 'Google')
    {
        SMap.setMapType(targetMap);
        currentMap = 'Sapo';
    }

    if (currentMap == "Google" && targetMap != 'Google')
    {
        if (entityMarker != undefined)
        {
            entityMarker.closeInfoWindow();
        }

        var view = GMap.getView();
        windowResize.hide3D_Map();
        if (view.zoom > 17) { view.zoom = 17; }
        SMap.flyTo(view.center.lat(), view.center.lng(), view.zoom);
        SMap.setMapType(targetMap);
        currentMap = "Sapo";
    }

    if (currentMap == "Sapo" && targetMap == 'Google')
    {
        windowResize.show3D_Map();
        var view = SMap.getView();
        currentMap = 'Google';
        GMap.flyTo(view.center.lat, view.center.lon, view.zoom);

        document.getElementById("btn_Map").className = 'ui-state-default ui-corner-all';
        document.getElementById("btn_Hyb").className = 'ui-state-default ui-corner-all';
        document.getElementById("btn_Sat").className = 'ui-state-default ui-corner-all';
        document.getElementById("btn_map3D").className = 'ui-state-hover ui-corner-all';
    }
}

function fly(Name, Lat, Lng, Desc, Kml, Link, laLat, laLng, laHed, laRng, laTlt)
{
    entity = new Entity(Name, Lat, Lng, Desc, Kml, Link, laLat, laLng, laHed, laRng, laTlt);

    zoom = 17;
    if (currentMap == 'Google')
    {
        GMap.flyAnimatedTo(entity.laLatitude, entity.laLongitude, entity.laHeading, entity.laRange, entity.laTilt);
    }
    if (currentMap == 'Sapo')
    {
        SMap.flyTo(entity.Latitude, entity.Longitude, zoom);
    }
    addMarkers();
    addModel(entity.Kml);
}

function Show3dModel()
{
    var windowResize = new WindowResizer();

    if (currentMap == 'Sapo')
    {
        windowResize.show3D_Map();
        currentMap = 'Google';
        GMap.flyAnimatedTo(entity.laLatitude, entity.laLongitude, entity.laHeading, entity.laRange, entity.laTilt);

        document.getElementById("btn_Map").className = 'ui-state-default ui-corner-all';
        document.getElementById("btn_Hyb").className = 'ui-state-default ui-corner-all';
        document.getElementById("btn_Sat").className = 'ui-state-default ui-corner-all';
        document.getElementById("btn_map3D").className = 'ui-state-hover ui-corner-all';
    }
}


function addMarkers()
{
    if (marker !== undefined)
    {
        GMap.removeMarker();
        SMap.removeMarker();
    }
    GMap.addMarker(entity.Latitude, entity.Longitude, entity.Description, entity.Link);
    SMap.addMarker(entity.Latitude, entity.Longitude, entity.Description, entity.Link);
}

function addModel()
{
    if (networkLink !== undefined)
    {
        GMap.removeModel();
    }
    GMap.addModel(entity.Kml);
}

function accordionRefresh()
{
    $("#accordion").accordion({
        collapsible: true,
        active: false
    });
}

function rotate()
{
    if (currentMap == "Google")
    {
        GMap.rotateOnPoint();
    }
}

function BirdEye()
{
    if (dialog != true)
    {
        dialog = true;
        BMap.checkBirdEye();
    }
}

function VirtualTour(src)
{
    if (dialog != true)
    {
        dialog = true;
        var mydialog = new Dialogs("#virtualTour", entity.Name + " Visita Virtual", src)
        mydialog.setDialog();
    }
}

function EntityDescription(src)
{

    if (dialog != true)
    {
        dialog = true;
        var mydialog = new Dialogs("#description", entity.Name, src)
        mydialog.setDialog();
        document.getElementById("descriptionText").innerHTML = entity.Description;
    }

}

function GetDomain()
{
    try
    {
        var strs = window.location.hostname.split(".");
        if (strs.length < 2)

            return document.domain;

        return strs[strs.length - 2] + "." + strs[strs.length - 1];

    } catch (e)
    {
        return document.domain;
    }
}


function linkToPage(src)
{
    parent.location = "http://" + GetDomain() + "/" + src;
}

function closeframe()
{
    parent.myLytebox.end();
}

