/**
 * Powered by Inmite (http://www.inmite.eu)
 */
function activateSale() {
	var holder = document.getElementById( 'ctrl-turned-on' );
       	holder.className = 'sale';
	onCMSaleTab();	
}

function activateRent() {
	var holder = document.getElementById( 'ctrl-turned-on' );
	holder.className = 'rent';
	onCMRentTab();
}

function ctrlTurnOn() {
	var onHolder = document.getElementById( 'ctrl-turned-on' ),
		offHolder = document.getElementById( 'ctrl-turned-off' );
	onHolder.style.display = 'block';
	offHolder.style.display = 'none';
	activateSale();
}

function ctrlTurnOff() {
	var onHolder = document.getElementById( 'ctrl-turned-on' ),
		offHolder = document.getElementById( 'ctrl-turned-off' );
	onHolder.style.display = 'none';
	offHolder.style.display = 'block';
	onCMOffTabs();
}

function load_cm_config() {
    /**
     * Dynamically loads config.js with timestamp as extra parameter
     * to prevent caching.
     */
    var elBody = document.getElementById('body');

    /**
     * Adds generated javascripts with sale/rental levels.
     * This is here to be able to change path of scripts dynamically
     * according to configuration.
     */
    var timeMs = (new Date()).getTime();
    var elScript1 = document.createElement('script');
    elScript1.type = 'text/javascript';
    elScript1.src = url_base + "levels_sale.js?v=" + timeMs;
    elBody.appendChild(elScript1);

    var elScript2 = document.createElement('script');
    elScript2.type = 'text/javascript';
    elScript2.src = url_base + "levels_rental.js?v=" + timeMs;
    elBody.appendChild(elScript2);

    /**
     * Setup zoom change listener
     */
    GEvent.addListener(map, "zoomend", function(oldLevel, newLevel) {
        try {
            if (newLevel > 15) {
                ctrlTurnOff();
                document.getElementById( 'ctrl-turn-on' ).style.display = 'none';
                document.getElementById( 'ctrl-cm-info' ).style.display = 'block';
            } else {
                document.getElementById( 'ctrl-turn-on' ).style.display = 'block';
                document.getElementById( 'ctrl-cm-info' ).style.display = 'none';
            }
        } catch (err) { }
    });
}

function getSaleLevel(level) {
    var out = 0;
    try {
        var val = (levelsSale(level) / cm_xchgrate);
        out = val.toFixed(0);
    } catch (err) {
        return 0;
    }

    return out;
}

function getRentalLevel(level) {
    var out = 0;
    try {
        var val = levelsRental(level) / cm_xchgrate;
        out = val.toFixed(0);
    } catch (err) {
        return 0;
    }
    return out;
}

function update_cm_values_sale() {
    document.getElementById('sale0').innerHTML = getSaleLevel(0);
    document.getElementById('sale1').innerHTML = getSaleLevel(0);
    document.getElementById('sale2').innerHTML = getSaleLevel(1);
    document.getElementById('sale3').innerHTML = getSaleLevel(2);
    document.getElementById('sale4').innerHTML = getSaleLevel(3);
    document.getElementById('sale5').innerHTML = getSaleLevel(4);
    document.getElementById('sale6').innerHTML = getSaleLevel(5);
}

function update_cm_values_ren() {
    document.getElementById('ren0').innerHTML = getRentalLevel(0);
    document.getElementById('ren1').innerHTML = getRentalLevel(0);
    document.getElementById('ren2').innerHTML = getRentalLevel(1);
    document.getElementById('ren3').innerHTML = getRentalLevel(2);
    document.getElementById('ren4').innerHTML = getRentalLevel(3);
    document.getElementById('ren5').innerHTML = getRentalLevel(4);
    document.getElementById('ren6').innerHTML = getRentalLevel(5);
}

/**
 * Prepare and return overlay layer for sales.
 */
function prepareSaleHeatmapOverlay() {
    var tilelayer = new GTileLayer(new GCopyrightCollection("(c) bezrealitky.cz"));

    tilelayer.getTileUrl = function(gp, zoom) {
        var url = url_base + "sale/" + zoom + "_" + gp.x + "x" + gp.y + ".png";
        return url;
    };

    tilelayer.isPng = function() {
        return true;
    };

    tilelayer.getOpacity = function() {
        return 1.0;
    };
    return new GTileLayerOverlay(tilelayer);
}

/**
 * Prepare and return overlay layer for rentals.
 */
function prepareRentalHeatmapOverlay() {
    var tilelayer = new GTileLayer(new GCopyrightCollection("(c) bezrealitky.cz"));

    tilelayer.getTileUrl = function(gp, zoom) {
        var url = url_base + "rental/" + zoom + "_" + gp.x + "x" + gp.y + ".png";
        return url;
    };

    tilelayer.isPng = function() {
        return true;
    };

    tilelayer.getOpacity = function() {
        return 1.0;
    };

    return new GTileLayerOverlay(tilelayer);
}

var addedCMOverlay;

function onCMOffTabs() {
    if (map) {
	if(addedCMOverlay) { map.removeOverlay(addedCMOverlay); }
    }
}

function onCMSaleTab() {
    if (map) {
	onCMOffTabs();
	addedCMOverlay = prepareSaleHeatmapOverlay();
        map.addOverlay(addedCMOverlay);
    }
};

function onCMRentTab() {
    if (map) {
	onCMOffTabs();
	addedCMOverlay = prepareRentalHeatmapOverlay();
        map.addOverlay(addedCMOverlay);
    }
};

