Files
openlayers/nicer-api-docs/resources/example-behaviour.js
2014-05-06 13:02:46 -05:00

87 lines
2.3 KiB
JavaScript

;(function() {
if (window.location.host === 'localhost:3000') {
return;
}
var container = $('.navbar .navbar-inner .container')[0],
form = document.createElement('form'),
select = document.createElement('select'),
possibleModes = {
'raw' : 'Development',
'advanced': 'Production'
},
urlMode = window.location.href.match(/mode=([a-z0-9\-]+)\&?/i),
curMode = urlMode ? urlMode[1] : 'advanced',
option,
modeIdx,
mode,
modeTxt,
modeChangedMethod;
if (!container) {
return;
}
modeChangedMethod = function() {
var newMode = this.value,
search = window.location.search.substring(1),
baseUrl = window.location.href.split('?')[0],
chunks = search ? search.split('&') : [],
pairs = [],
i,
pair,
adjusted;
for (i = chunks.length - 1; i >= 0; --i) {
pair = chunks[i].split('=');
if (pair[0].toLowerCase() === 'mode') {
pair[1] = newMode;
}
adjusted = encodeURIComponent(pair[0]);
if (typeof pair[1] !== undefined) {
adjusted += '=' + encodeURIComponent(pair[1] || '');
}
pairs.push(adjusted);
}
if (pairs.length === 0) {
pairs[0] = 'mode=' + encodeURIComponent(newMode);
}
location.href = baseUrl + '?' + pairs.join('&');
};
for (mode in possibleModes) {
if ( possibleModes.hasOwnProperty(mode) ) {
option = document.createElement('option');
modeTxt = possibleModes[mode];
option.value = mode;
option.innerHTML = modeTxt;
option.selected = curMode === mode;
select.appendChild(option);
}
}
$(select).change(modeChangedMethod);
select.className = 'input-medium';
form.className = 'navbar-form pull-right';
form.appendChild(select);
container.appendChild(form);
})();
var exampleNS = {};
exampleNS.getRendererFromQueryString = function() {
var obj = {}, queryString = location.search.slice(1),
re = /([^&=]+)=([^&]*)/g, m;
while (m = re.exec(queryString)) {
obj[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}
if ('renderers' in obj) {
return obj['renderers'].split(',');
} else if ('renderer' in obj) {
return [obj['renderer']];
} else {
return undefined;
}
};