/* * Copyright (C) 2009 Camptocamp * * This file is part of MapFish Client * * MapFish Client is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * MapFish Client is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with MapFish Client. If not, see . */ /* * This code is taken from the OpenLayers code base. * * Copyright (c) 2006-2007 MetaCarta, Inc., published under the Clear BSD * license. See http://svn.openlayers.org/trunk/openlayers/license.txt for the * full text of the license. */ (function() { /** * Before creating the mapfish namespace, check to see if * mapfish.singleFile is true. This occurs if the * SingleFile.js script is included before this one - as is the * case with single file builds. */ var singleFile = (typeof window.mapfish == "object" && window.mapfish.singleFile); /** * Namespace: mapfish * The mapfish object provides a namespace for all things */ window.mapfish = { /** * Property: _scriptName * {String} Relative path of this script. */ _scriptName: "MapFish.js", /** * Function: _getScriptLocation * Return the path to this script. * * Returns: * Path to this script */ _getScriptLocation: function () { // Workaround for Firefox bug: // https://bugzilla.mozilla.org/show_bug.cgi?id=351282 if (window.gMfLocation) { return window.gMfLocation; } var scriptLocation = ""; var scriptName = mapfish._scriptName; var scripts = document.getElementsByTagName('script'); for (var i = 0; i < scripts.length; i++) { var src = scripts[i].getAttribute('src'); if (src) { var index = src.lastIndexOf(scriptName); // is it found, at the end of the URL? if ((index > -1) && (index + scriptName.length == src.length)) { scriptLocation = src.slice(0, -scriptName.length); break; } } } return scriptLocation; } }; /** * mapfish.singleFile is a flag indicating this file is being included * in a Single File Library build of the MapFish Library. * * When we are *not* part of a SFL build we dynamically include the * MapFish library code. * * When we *are* part of a SFL build we do not dynamically include the * MapFish library code as it will be appended at the end of this file. */ if(!singleFile) { var jsfiles = new Array( "lang/en.js", "core/Color.js", "core/GeoStat.js", "core/GeoStat/Choropleth.js", "core/GeoStat/ProportionalSymbol.js", "core/Routing.js", "core/Util.js", "core/Searcher.js", "core/Searcher/Map.js", "core/Searcher/Form.js", "core/PrintProtocol.js", "core/Offline.js", "core/Protocol.js", "core/Protocol/MapFish.js", "core/Protocol/MergeFilterDecorator.js", "core/Protocol/TriggerEventDecorator.js", "core/Strategy.js", "core/Strategy/ProtocolListener.js", "widgets/MapComponent.js", "widgets/Shortcuts.js", "widgets/ComboBoxFactory.js", "widgets/recenter/Base.js", "widgets/recenter/Coords.js", "widgets/recenter/DataField.js", "widgets/data/FeatureReader.js", "widgets/data/FeatureStore.js", "widgets/data/FeatureStoreMediator.js", "widgets/data/SearchStoreMediator.js", "widgets/data/LayerStoreMediator.js", "widgets/data/GridRowFeatureMediator.js", "widgets/geostat/Choropleth.js", "widgets/geostat/ProportionalSymbol.js", "widgets/tree/LayerTree.js", "widgets/tree/LayerTreeExtra.js", "widgets/toolbar/Toolbar.js", "widgets/toolbar/CheckItem.js", "widgets/toolbar/MenuItem.js", "widgets/editing/FeatureList.js", "widgets/editing/FeatureProperties.js", "widgets/editing/FeatureEditingPanel.js", "widgets/print/Base.js", "widgets/print/BaseWidget.js", "widgets/print/SimpleForm.js", "widgets/print/MultiPage.js", "widgets/print/PrintAction.js", "widgets/search/Form.js" ); // etc. var allScriptTags = ""; var host = mapfish._getScriptLocation(); for (var i = 0; i < jsfiles.length; i++) { if (/MSIE/.test(navigator.userAgent) || /Safari/.test(navigator.userAgent)) { var currentScriptTag = ""; allScriptTags += currentScriptTag; } else { var s = document.createElement("script"); s.src = host + jsfiles[i]; var h = document.getElementsByTagName("head").length ? document.getElementsByTagName("head")[0] : document.body; h.appendChild(s); } } if (allScriptTags) { document.write(allScriptTags); } } })();