lockCloseFixed = false;

function showFloatPanorama(id, rotation) {
	checkActivePreview(id);
	$('#floatPanorama').css({'visibility':'', 'top':$('body')[0].scrollTop + ($(window).height() / 2 - 215)}).show();
    showPanorama(id, rotation);
}

function findPanorama(id) {
	var item = null;
	$.each(mapState.panoramaMarkers, function() { if (this.id == id) { item = this; return; } });
	if (panos != undefined && item === null) $.each(panos, function() { if (this.id == id) { item = this; return; } });
	if (item !== null) return item;
	
	if (mapState.panoramaMarkersInfo[id] != undefined) return mapState.panoramaMarkersInfo[id];
	return null;
}
function checkActivePreview(id) {
	var allPreviews = $('div[@prevContainer=1]');
	allPreviews.find('img').css({'border':'1px solid #E6E6E6'});
	allPreviews.css({'color':'#333333', 'font-weight':'normal'});
	
	var targetPreview = $('#prev'+id);
    targetPreview.find('img').css({'border':'1px solid #C1272D'});
    targetPreview.css({'color':'#C1272D', 'font-weight':'bold'});
}
function panMapTo(lat, lng) {
    var map = _maps['basicMap'];
    var pt = new GLatLng(lat,lng);
    map.checkResize();
    map.panTo(pt);
    
    if (mapState.activePanorama !== null) {
        map.removeOverlay(mapState.activePanorama);
        mapState.activePanorama = null;
    }
    mapState.activePanorama = createMarker(pt, undefined, 'activePanoramaMarker', true);
    map.addOverlay(mapState.activePanorama);
}
function closeFloatPanorama() {
	//$('.floatFixed').css({'visibility':'hidden'}).hide();
	$('#floatPanorama').hide();
}

/* stripe mode */
function showInlinePanorama(id, rotation, autostart) {
    checkActivePreview(id);
    showPanorama(id, rotation, autostart);
}

function createPanoramaData(item) {
    var pd = '';
    if (item.title != undefined && item.title != '') pd = '<b>' + item.title + '</b>';
    if (item.description != undefined && item.description != '') pd += '<div style="padding-top:3px">' + item.description + '</div>';
    if (pd != '') pd = '<div style="padding-bottom:5px;">' + pd + '</div>';
    return pd;
}

function showPanoramaData(pd, id, commentsCount) {
    $('#panoramaData #pd').html(pd);
    
    var href = base + 'panoramas/' + id + '/';
    $('#panoramaUrl').val(href);
    $('#panoramaData #cc').text(commentsCount);
    $('#panoramaData').find('a[@pl=1]').attr('href', href);
    $('#panoramaData').find('a[@pl=2]').attr('href', href + '#comments');
    $('#panoramaData').show();
}

function showPanorama(id, rotation, autostart) {
    var item = findPanorama(id);
    if (item === null) {
        alert ('Нет данных о панораме!');
        return false;
    }
    initPanorama("flashPanorama", item.src, rotation, autostart);

    if (!mapState.infomatMode) {
    	var pd = createPanoramaData(item);
    	showPanoramaData(pd, item.id, item.commentsCount);
    }
    else $('.divider').show();
}

function initPanorama(containerId, panImage, rotation, autostart) {
	$('#' + containerId).show();
	var obj = {};
	obj.autostart = autostart == undefined ? 1 : autostart;
	obj.speed = 5;
	obj.panImage = panImage;
	obj.infomatMode = mapState.infomatMode ? 1 : 0;
	obj.closeCallback = 'onPanoramaClose';
	if (rotation != undefined) obj.panPosition = rotation;
	
    flashembed(
        containerId,
        mediaFolder + "panoramas/panorama.swf",
        obj
    );
    
    if (_customIcons["activePanoramaMarker"] == undefined) {
        var marker = new GIcon();
        marker.image = skin + 'img/map_panorama_active.png';
        marker.iconSize = new GSize(36, 36);
        marker.iconAnchor = new GPoint(18, 18);
        marker.infoWindowAnchor = new GPoint(18, 0);
        _customIcons["activePanoramaMarker"] = marker;
    }
}

function onPanoramaClose() {
	var map = _maps['basicMap'];
	if (mapState.infomatMode) {
        closeInfomatPanorama(map);
        
	} else {
		if (panoramaMode == 'stripe') {
			if (lockCloseFixed) return;
			// hide inline panorama
            closeInlinePanorama(map);
			
		} else {
			// hide float panorama
			closeFloatPanorama();
		}
	}
}

function closeInfomatPanorama(map) {
    $('#flashPanorama').hide(); $('.divider').hide();
    setMapSize(map, mapState.initialHeight);
    $('.fake').css('top', mapState.initialHeight - 35);
    updateMarkers(map);
    
    if (mapState.activePanorama !== null) {
        map.removeOverlay(mapState.activePanorama);
        mapState.activePanorama = null;
    }
}
function closeInlinePanorama(map) {
    $('#flashPanorama').hide(); $('#panoramaData').hide();
    setMapSize(map, mapState.initialHeight);
    updateMarkers(map);
    
    if (mapState.activePanorama !== null) {
        map.removeOverlay(mapState.activePanorama);
        mapState.activePanorama = null;
    }
}