// Default content type
var contentType = "tour";
// available content types
var contentTypes = [
"tour",
"poi",
"hut",
"lodging",
"toptipps",
"story",
"skiresort",
"condition",
"event",
"offer",
"gastro"
];
// grab first key/value pair out of query string (brute force)
var keyValue = location.search.substr(1).split("=");
// is key really called "contentType" and is this content type available ?
if ((keyValue[0]=="contentType") || (keyValue[1] in contentTypes)) {
contentType = keyValue[1];
}
// find flexview api dom node
var tc = document.getElementsByClassName("oax-top-cont")[0];
// choose dom node to place content type menu in
var pb = tc.parentElement;
// create unordered list
var ul = document.createElement("ul");
// iterate over available content types to create a menu
for(var i=0; i<contentTypes.length; i++) {
// create list element
var li = document.createElement("li");
// create text node with content type name
var t = document.createTextNode(contentTypes[i]);
// create element to link each menu entry to a content type
var a = document.createElement("a");
a.setAttribute("href", "?contentType=" + contentTypes[i]);
// add it to list element
a.appendChild(t);
li.appendChild(a);
// add list element to list
ul.appendChild(li);
}
// create new div element
var div = document.createElement("div");
div.setAttribute("class", "container");
// insert new div into panel body just before flexview api node
pb.insertBefore(div, tc);
// add some explanation to the menu
div.appendChild(document.createTextNode("Please choose a FlexView API content type:"));
// add list as menu
div.appendChild(ul);
// flexview API config object
var conf = {
frontendtype: contentType, // content type chosen by query string
zoom: 11,
center: [ 10.292, 47.546 ]
};
// create flexview API
var fvp = oa.api.flexviewpage( conf );