shadowmaker = {
    map : undefined,
    mapWidth: 550,

    onPageLoad : function(withMap) {
        if (withMap) {
            this.initMyMap();
        }
        this.keepCentered();
    },

    onPageUnload : function(withMap) {
        if (withMap) {
        }
    },

    initMyMap : function() {
        var map = new google.maps.Map(document.getElementById("map"), {
            disableDoubleClickZoom : false,
            keyboardShortcuts : true,
            center : new google.maps.LatLng(48.9, 2.333),
            zoom : 4,
            mapTypeId : google.maps.MapTypeId.ROADMAP
        });
        this.map = map;

        var outerThis = this;
        google.maps.event.addListener(map, 'click', function(event) {
            outerThis.addMarker(event.latLng);
        });
    },

    keepCentered : function() {
        var body = document.getElementById('body');
        var element = document.getElementById('centered');
        if (!element) {
            return;
        }
        var windowWidth = body.offsetWidth;
        var marginLeft = element.style.marginLeft ? parseInt(element.style.marginLeft) : 0;
        var marginRight = element.style.marginRight ? parseInt(element.style.marginRight) : 0;
        var elementWidth;

        elementWidth = element.offsetWidth;

        var margin = Math.round((windowWidth - elementWidth) / 2) - 4;
        if (margin < 0) {
            margin = 0;
        }
        element.style.marginRight = margin + "px";
        element.style.marginLeft = margin + "px";

        document.title = "WWidth: " + windowWidth + " " + "Margin: " + margin;

        var map = document.getElementById('map');
        if (map != undefined) {
            var left = document.getElementById('left');
            var mapsection = document.getElementById('mapsection');
            var mapsectionHeightWithoutMap = mapsection.offsetHeight - map.offsetHeight;
            var mapHeight = Math.max(this.mapWidth, left.offsetHeight - mapsectionHeightWithoutMap);
            map.style.height = mapHeight + "px";
        }
    }
}

// ////////////////////////////////////
// /// Generic library functions //////
// ////////////////////////////////////

klomp = new Object();

klomp.library = {
    isMSIE : function() {
        if (document.all) {
            return true;
        } else {
            return false;
        }
    },

    getWindowWidth : function() {
        if (window.innerWidth) {
            return window.innerWidth;
        } else if (document.documentElement && document.documentElement.clientWidth) {
            return document.documentElement.clientWidth;
        } else {
            return document.body.clientWidth;
        }
    },

    parseQueryString : function() {
        var parameters = new Array();

        var query = window.location.search.substring(1);
        var parms = query.split('&');
        for ( var i = 0; i < parms.length; i++) {
            var pos = parms[i].indexOf('=');
            if (pos > 0) {
                var key = unescape(parms[i].substring(0, pos));
                var val = unescape(parms[i].substring(pos + 1));
                parameters[key] = val;
            }
        }
        return parameters;
    }
}

