﻿var mapsLoaded = false;
function loadMaps()
{
    if (!mapsLoaded)
    {
        loadStateMap();
        loadCountryMap();
        mapsLoaded = true;
    }
}

function displayCemeteryInfo() 
{
    $('#clickOnGraveDiv').hide();
	$('#graveViewContents').hide();
	$('#cemeteryInfoContents').show();
	$('#graveViewTabView').removeClass('inner_tabs_on');
	$('#cemeteryInfoTabView').addClass('inner_tabs_on');
	$('#legendBoxFly').hide();
	$('#legendLink').hide();
	loadMaps();
}

function displayGraveViewInfo() 
{
    $('#clickOnGraveDiv').show();
	$('#cemeteryInfoContents').hide();
	$('#graveViewContents').show();
	$('#cemeteryInfoTabView').removeClass('inner_tabs_on');
	$('#graveViewTabView').addClass('inner_tabs_on');
	$('#legendLink').show();
}

function displayCemeteryVersion() 
{
	$('#blogEntriesView').hide();
	$('#communityVersionView').hide();
	$('#cemeteryVersionView').show();
	$('#cemeteryVersionTabView').addClass('inner_tabs_on');	
	$('#communityVersionTabView').removeClass('inner_tabs_on');
	$('#blogTabView').removeClass('inner_tabs_on');
	$.cookie('selected_tab', 'cemetery');
}

function displayCommunityVersion() 
{
	$('#blogEntriesView').hide();
	$('#cemeteryVersionView').hide();
	$('#communityVersionView').show();
	$('#cemeteryVersionTabView').removeClass('inner_tabs_on');	
	$('#communityVersionTabView').addClass('inner_tabs_on');
	$('#blogTabView').removeClass('inner_tabs_on');
	$.cookie('selected_tab', 'community');
}

function displayBlog() 
{
	$('#communityVersionView').hide();
	$('#cemeteryVersionView').hide();
	$('#blogEntriesView').show();
	$('#cemeteryVersionTabView').removeClass('inner_tabs_on');	
	$('#communityVersionTabView').removeClass('inner_tabs_on');
	$('#blogTabView').addClass('inner_tabs_on');
	$.cookie('selected_tab', 'blog');
}

function initSelectedTab()
{
    var selectedTab = $.cookie('selected_tab');
    if (selectedTab == "cemetery") displayCemeteryVersion();
    else if (selectedTab == "community") displayCommunityVersion();
    else if (selectedTab == "cemetery") displayBlog();
}

function refreshVicinityMap(vicinityImageName)
{
    $('#graveImage')[0].src = vicinityImageName;
}

function loadComplete()
{
    $('#loadingDiv').hide();
}

var legendBoxOut = 0;
function toggleLegend() {
	if (legendBoxOut == 0){
	
		if (document.getElementById) {
			eval("document.getElementById('legendBoxFly').style.display = 'block'");
		} else {
			if (document.layers) {
				document.layers['legendBoxFly'].display = 'block';
			} else {
				if (document.all) {
					eval("document.all.legendBoxFly.style.display = 'block'");
				}
			}
		}
		legendBoxOut = 1
		
	} else {
		
		
		if (document.getElementById) {
			eval("document.getElementById('legendBoxFly').style.display = 'none'");
		} else {
			if (document.layers) {
				document.layers['legendBoxFly'].display = 'none';
			} else {
				if (document.all) {
					eval("document.all.legendBoxFly.style.display = 'none'");
				}
			}
		}
		legendBoxOut = 0
		
	}	
}

var stateMap, countryMap;
var projectedLonLat;
function loadStateMap()
{
    try{
        stateMap = initMap("stateMap", 5, lon, lat);
    } catch(e)
    {
        alert(e.message);
    }
}

function loadCountryMap()
{
    try{
        countryMap = initMap("countryMap", 2, lon, lat);
    } catch(e){}
}

function initMap(divName, zoomLevel, lon, lat){
    var ghyb, markerLayer;
    var map = new OpenLayers.Map(divName, {
        controls: [],
        projection: new OpenLayers.Projection("EPSG:900913"),
        units: "m",
        maxResolution: 156543.0339,
        maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34,
                                          20037508.34,  20037508.34)
    });     

    ghyb = new OpenLayers.Layer.Google("Google Streets", {"sphericalMercator": true});
    markerLayer = new OpenLayers.Layer.Markers("Markers");
    map.addLayers([ghyb, markerLayer]);
    
    var storedLonLat = new OpenLayers.LonLat(lon, lat);
    projectedLonLat = OpenLayers.Layer.SphericalMercator.forwardMercator(storedLonLat.lon, storedLonLat.lat);
    markerLayer.addMarker(new OpenLayers.Marker(projectedLonLat));
    map.setCenter(projectedLonLat, zoomLevel);
    return map;
}
