wZoomIn = "Zoom ind";
wZoomOut = "Zomm ud";
wCenterMap = "Centre kort";
wClose = "Luk";
var iHandleService = new HandleService();
function realService(aName, aServShortName, aIcon, aServCodesUrl, aServDataUrl, aSource, aXslUrl, aIconSrc, aStatus, aXslRowUrl, aXslListUrl, aImgDir, aBigIcon, aIconType, aToolTipNodes){
this.name = aName;
this.shortName = aServShortName;
this.icon = aIcon;
this.codeUrl = aServCodesUrl;
this.dataUrl = aServDataUrl;
this.source = aSource;
this.xslUrl = aXslUrl;
this.iconSrc = aIconSrc;
this.status = aStatus;
this.xslRowUrl = aXslRowUrl;
this.xslListUrl = aXslListUrl;
this.imgDir = aImgDir;
this.bigIcon = aBigIcon;
this.iconType = aIconType;
this.iToolTipNodes = aToolTipNodes;
}
function formServicesArr(aName, aServShortName/*, aIcon, aServCodesUrl, aServDataUrl, aSource, aXslUrl, aIconSrc*/, aStatus/*, aXslRowUrl, aXslListUrl, aImgDir, aBigIcon, aIconType*/, aXmlHttp/*, aTitle, aRefresh, aLoad, aSpatial, aDescr, aMixedData*/, aSearchCritUrl, aGetDataNodeName, aDropDowns){
this.name = aName;
this.shortName = aServShortName;
/*
this.icon = aIcon;
this.codeUrl = aServCodesUrl;
this.dataUrl = aServDataUrl;
this.source = aSource;
this.xslUrl = aXslUrl;
this.iconSrc = aIconSrc;
*/
this.status = aStatus;
/*
this.xslRowUrl = aXslRowUrl;
this.xslListUrl = aXslListUrl;
this.imgDir = aImgDir;
this.bigIcon = aBigIcon;
this.iconType = aIconType;
*/
this.xmlHttp = aXmlHttp;
/*
this.codeXML = "";
this.title = aTitle;
this.refresh = aRefresh;
this.load = aLoad;
this.spatial = aSpatial;
this.descr = aDescr;
this.mixedData = aMixedData;
*/
this.searchCritUrl = aSearchCritUrl;
this.getDataNodeName = aGetDataNodeName;
this.dropDowns = aDropDowns;
this.loadedOnce = false;
}
function ServicesGroup (aName, aShortName, aStatus, aServices/*, aHelpText*/) {
this.iName = aName;
this.iShortName = aShortName;
this.iStatus = aStatus;
this.iServices = aServices;
//this.iHelpText = aHelpText;
}
function ServiceInGroup (aInx, aShortName) {
this.iInx = aInx;
this.iShortName = aShortName;
}
function HandleService() {
var iThisClass = this;
var iSettingsXml = null;
var iServGroupArr = new Array();
var iDataUrl = "/churchfresco/ChurchList";
var iChurchObjUrl = "/churchfresco/ChurchObj";
var iSearchArr = new Array();
//var iWndWdth = 0;
var iChurchXmlDoc = null;
var iFrescoXmlDoc = null;
var iCurrThumbId = "";
var iFrescoObjUrl = "/churchfresco/FrescoObj";
var iLastChurchId = "";
var iLastFrescoId = "";
var iCurrThumbId = "";
var iLastFrescoImgId = "";
var iLastFrescoIndex = -1;
var iLastTopFrescoPictInx = -1;
var iLastTopFrescoPictId = "";
iFirstTimeLoadListener.addListener(this);
iGlobalPanListener.addListener(this);
var iInfoForUser = new InfoForUserWindow();
this.onFirstTimeLoad = function () {
//alert_mb(iVbX,iVbY,iVbWidth,iVbHeight);
//iWndWdth = Math.round(iWidth * iScheme.iSmallKoef);
//iInfo.createInfoWindow(iWidth - iWndWdth - 5, 5, iWndWdth, iHeight - 10);
setTimeout(getServiceData, 500);
}
this.onPan = function () {
//alert_mb(iVbX,iVbY,iVbWidth,iVbHeight);
}
function formRealServiceArr () {
var element = iSettingsXml.getElementsByTagName("REAL_SERVICE").item(0);
var servName = iXmlTools.getChildNodeValue(element, "NAME");
var currShortName = iXmlTools.getChildNodeValue(element, "SHORT_NAME");
var icon = iXmlTools.getChildNodeValue(element, "ICON_THEME_NODE_NAME");
var servCodesUrl = iXmlTools.getChildNodeValue(element, "CODES_URL");
var servDataUrl = iXmlTools.getChildNodeValue(element, "DATA_URL");
var source = iXmlTools.getChildNodeValue(element, "CODES_URL_SOURCE");
var xslUrl = iXmlTools.getChildNodeValue(element, "THEME_XSL");
var iconSrc = iXmlTools.getChildNodeValue(element, "ICON_NAME_SOURCE");
var xslRowUrl = iXmlTools.getChildNodeValue(element, "XSL_ROW_URL");
var xslListUrl = iXmlTools.getChildNodeValue(element, "XSL_LIST_URL");
var imgDir = iXmlTools.getChildNodeValue(element, "IMG_DIR");
var bigIcon = iXmlTools.getChildNodeValue(element, "BIG_ICON");
var iconType = iXmlTools.getChildNodeValue(element, "ICON_TYPE");
var toolTipNodes = element.getElementsByTagName("TOOLTIP_NODE");
var toolTipNodesArr = new Array();
var j = 0;
var tLng = toolTipNodes.length;
for (j = 0; j < tLng; j++) {
toolTipNodesArr.push(toolTipNodes.item(j).firstChild.nodeValue);
}
iServicesArr.push(new realService(servName, currShortName, icon, servCodesUrl, servDataUrl, source, xslUrl, iconSrc, status, xslRowUrl, xslListUrl, imgDir, bigIcon, iconType, toolTipNodesArr));
}
function getServiceData(){
iSettingsXml = iXmlTools.getDataFromXMLFile(iXMLSettingsUrl);
if (iSettingsXml) {
formRealServiceArr();
var servGroups = iSettingsXml.getElementsByTagName("SERVICES_GROUP");
var j = 0;
var gLng = servGroups.length;
var servCounter = -1;
for (j = 0; j < gLng; j++) {
var servGroup = servGroups.item(j);
var gName = iXmlTools.getChildNodeValue(servGroup, "GROUP_NAME");
var gShortName = iXmlTools.getChildNodeValue(servGroup, "GROUP_SHORT_NAME");
//var helpText = getChildNodeValue(servGroup, "HELP_TEXT");
var servNodes = servGroup.getElementsByTagName("SERVICE");
var lng = servNodes.length;
var servInGroupArr = new Array();
for (var i = 0; i < lng; i++) {
servCounter++;
var element = servNodes.item(i);
var servName = iXmlTools.getChildNodeValue(element, "NAME");
var servShortName = iXmlTools.getChildNodeValue(element, "SHORT_NAME");
/*var icon = getChildNodeValue(element, "ICON_THEME_NODE_NAME");
var servCodesUrl = getChildNodeValue(element, "CODES_URL");
var servDataUrl = getChildNodeValue(element, "DATA_URL");
var source = getChildNodeValue(element, "CODES_URL_SOURCE");
var xslUrl = getChildNodeValue(element, "THEME_XSL");
var iconSrc = getChildNodeValue(element, "ICON_NAME_SOURCE");
var xslRowUrl = getChildNodeValue(element, "XSL_ROW_URL");
var xslListUrl = getChildNodeValue(element, "XSL_LIST_URL");
var imgDir = getChildNodeValue(element, "IMG_DIR");
var bigIcon = getChildNodeValue(element, "BIG_ICON");
var iconType = getChildNodeValue(element, "ICON_TYPE");
var title = getChildNodeValue(element, "TITLE");
var refresh = getChildNodeValue(element, "REFRESH_DATA");
var load = false;
var serviceParam = iGup.gup(servShortName);
if (serviceParam != "") load = serviceParam;
else load = getChildNodeValue(element, "LOAD_ON_START");
var spatial = getChildNodeValue(element, "SPATIAL");
var update = getChildNodeValue(element, "UPDATE_RATE_MIN");
if (update != 0) iUpdateArr.push(new Array(servCounter, update));
var descr = getChildNodeValue(element, "DESCRIPTION");
if (descr == null) descr = "";
var mixedData = getChildNodeValue(element, "MIXED_DATA");
if (mixedData == null) mixedData = "";
*/
var searchCritUrl = iXmlTools.getChildNodeValue(element, "SEARCH_CRIT_URL");
var getDataNodeName = iXmlTools.getChildNodeValue(element, "GET_DATA_NODE_NAME");
var dropDowns = element.getElementsByTagName("DROP_DOWN").length;
var status = null;
var newXMLhttp = new LP_XMLHTTP();
iSearchArr.push(new formServicesArr(servName, servShortName/*, icon, servCodesUrl, servDataUrl, source, xslUrl, iconSrc*/, status/*, xslRowUrl, xslListUrl, imgDir, bigIcon, iconType*/, newXMLhttp/*, title, refresh, load, spatial, descr, mixedData*/, searchCritUrl, getDataNodeName, dropDowns));
servInGroupArr.push(new ServiceInGroup(iSearchArr.length - 1, servShortName));
}
//var activate = getChildNodeValue(servGroup, "ACTIVATE_ON_START");
//if (activate == 1) iLoadOnStartArr.push(j);
iServGroupArr.push(new ServicesGroup(gName, gShortName, null, servInGroupArr/*, helpText*/));
}
//var toolsSettingsXML = xmlDoc.getElementsByTagName("TOOLS_SETTINGS");
//if (toolsSettingsXML.length > 0) iToolsSettingsXML = toolsSettingsXML.item(0);
showSearchBar();
getSearchData();
}
}
function showSearchBar () {
var htmlStr = iXmlTools.XMLDOCToXSL(iSettingsXml, iThisAppPath + "xsl/searchBar.xsl", "txt");
var searchTd = iDoc.getElementById("searchBarTd");
if (searchTd) {
searchTd.innerHTML = htmlStr;
}
var autoList = new AutoCompleteTextField();
autoList.setFieldId("searchChurch_auto");
autoList.setOutputDivId("searchChurch_auto_output");
autoList.setFieldValueId("searchChurch");
autoList.setGetUrl("/churchfresco/ChurchNames");
autoList.setRowsetTag("ROWS");
autoList.setNeededShowNodeName("CHURCH_NAME");
autoList.setNeededPassNodeName("CHURCH_NAME");
autoList.setLookAt(autoList.lookAt);
autoList.init();
}
function getSearchData () {
var i = 0;
var lng = iSearchArr.length;
for (i = 0; i < lng; i++) {
var xmlHttp = iSearchArr[i].xmlHttp;
var url = iSearchArr[i].searchCritUrl;
var dLng = iSearchArr[i].dropDowns;
xmlHttp.getUrl(url, searchDataBack, "xml", iSearchArr[i].shortName, dLng);
}
}
function searchDataBack(aXmlDoc, aShortName, aDLng){
if (aShortName == "anbefaling") {
var xmlStr = iXmlTools.XMLDOCToXSL(aXmlDoc, iThisAppPath + "xsl/sortAnbefaling.xsl", "txt");
aXmlDoc = iXmlTools.stringToXMLDOC(xmlStr);
}
else if (aShortName == "kalkmaleriv") {
var xmlStr = iXmlTools.XMLDOCToXSL(aXmlDoc, iThisAppPath + "xsl/sortKalkmaleriv.xsl", "txt");
aXmlDoc = iXmlTools.stringToXMLDOC(xmlStr);
}
else if (aShortName == "motivklass") {
var xmlStr = iXmlTools.XMLDOCToXSL(aXmlDoc, iThisAppPath + "xsl/sortMotivklass.xsl", "txt");
aXmlDoc = iXmlTools.stringToXMLDOC(xmlStr);
}
var d = 0;
var dLng = Number(aDLng);
for (d = 0; d < dLng; d++) {
var select = iDoc.getElementById(aShortName + "|select|" + (d + 1));
iHtmlTools.removeSelectOptions(select);
iHtmlTools.addSelectOption(select, "", "");
if (aXmlDoc) {
var j = 0;
var rows = aXmlDoc.getElementsByTagName("ROW");
var sLng = rows.length;
for (j = 0; j < sLng; j ++) {
var arr = getNameAndShortName(rows.item(j), aShortName);
var name = arr[0];
var shortName = arr[1];
iHtmlTools.addSelectOption(select, shortName, name);
}
}
}
}
function getNameAndShortName (aNode, aShortName) {
var arr = new Array(null, null);
if (aShortName == "motivklass") {
arr[0] = iXmlTools.getChildNodeValue(aNode, "SAMLET_KLASSIFIKATION");
arr[1] = iXmlTools.getChildNodeValue(aNode, "MOTIV_KLAS_ID");
}
else {
arr[0] = iXmlTools.getChildNodeValue(aNode, "NAME");
arr[1] = iXmlTools.getChildNodeValue(aNode, "SHORT_NAME");
}
return arr;
}
this.changeGroupVisibility = function (aShortName) {
var table = iDoc.getElementById(aShortName + "|itemsTable");
var openClose = table.getAttribute("openClose");
var img = iDoc.getElementById(aShortName + "|visImg");
if (openClose == "open") {
img.setAttribute("src", iThisAppPath + "/img/pil_ned.gif");
hideObj(aShortName + "|itemsTable");
table.setAttribute("openClose", "close");
}
else {
img.setAttribute("src", iThisAppPath + "/img/pil_op.gif");
showObj(aShortName + "|itemsTable");
table.setAttribute("openClose", "open");
}
}
function hideObj(aId){
var obj = document.getElementById(aId);
if (obj){
obj.style.position = "absolute";
obj.style.top = "-200000px";
obj.style.left = "-200000px";
}
}
function showObj(aId){
var obj = document.getElementById(aId);
if (obj){
obj.style.position = "";
obj.style.top = "";
obj.style.left = "";
}
}
function formSearchXML () {
var xml = "" + "" + iMapCoord.getSRID() + "";
var i = 0;
var lng = iSearchArr.length;
for (i = 0; i < lng; i++) {
var getDataNodeName = iSearchArr[i].getDataNodeName;
if (getDataNodeName != null) {
var val = "";
var dropDowns = iSearchArr[i].dropDowns;
if (dropDowns > 1) {
var j = 0;
for (j = 0; j < dropDowns; j++) {
currVal = iDoc.getElementById(iSearchArr[i].shortName + "|select|" + (j + 1)).value;
if (currVal != "") {
//if (j > 0 && val != "") val = val + ":";
//val = val + currVal;
xml = xml + "<" + getDataNodeName + "_" + (j + 1) + ">" + currVal + "" + getDataNodeName + "_" + (j + 1) + ">";
}
}
}
else {
val = iDoc.getElementById(iSearchArr[i].shortName + "|select|" + 1).value;
if (val != "") {
xml = xml + "<" + getDataNodeName + ">" + val + "" + getDataNodeName + ">";
}
}
}
}
var name = iDoc.getElementById("searchChurch_auto").value;
if (name != "") {
xml = xml + "" + name + "";
}
xml = xml + "";
return xml;
}
this.getFrescoData = function () {
startLoadingWnd("data", iWidth - 60, 5, 50, 50);
var url = iDataUrl;
var xml = formSearchXML();
iXmlTools.postUrl(url, xml, getObjectData, "txt", "", iServicesArr[0].shortName);
}
function getObjectData(aXmlStr, aShortName) {
iBasic.getObjectData(aXmlStr, aShortName);
}
this.clearSearchFields = function () {
var i = 0;
var lng = iSearchArr.length;
for (i = 0; i < lng; i++) {
var dLng = iSearchArr[i].dropDowns;
var j = 0;
for (j = 0; j < dLng; j++) {
var select = iDoc.getElementById(iSearchArr[i].shortName + "|select|" + (j + 1));
if (select) select.options[0].selected = true;
}
}
iDoc.getElementById("searchChurch_auto").value = "";
}
this.selectedService = function(aShortName){
var inx = iArrayTools.findInObjectArray(iServices, "name", aShortName);
var arrLength = 0;
//alert(aShortName + " : " + inx);
if (inx != -1){
arrLength = iServices[inx].xmlDoc.getElementsByTagName("ROW").length;
}
if (arrLength == 0) {
var wdt = 210;
var hgt = 80;
var infoWndEl = iInfoForUser.getWindowElement(Math.round((iWidth / 2) - (wdt / 1.7)), Math.round((iHeight / 2) - (hgt / 1.7)), wdt, hgt, 3500, "Desværre, ingen søgning opfylder dine kriterier", 10, "#AC0E19", "bold");
iGraphicsDiv.appendChild(infoWndEl);
}
}
this.handleSpecialIcons = function(aShortName, aI, aInx, aServArrInx) {
var div = iDoc.createElement("div");
div.style.position = "absolute";
div.width = "8";
div.height = "8";
div.className = "churchIcon";
var i = 0;
var lng = iServicesArr[0].iToolTipNodes.length;
var msg = "";
for (i = 0; i < lng; i++) {
var tipInx = iArrayTools.findInObjectArray(iServices[aInx].data[0], "name", iServicesArr[aServArrInx].iToolTipNodes[i]);
if (tipInx != -1) msg = msg + iServices[aInx].data[aI][tipInx].value + " ";
}
div.title = msg.substring(0, msg.length - 1);
return div;
}
this.mouseOver = function (aShortName, aInx, aX, aY) {}
function formChurchObjXML (aId) {
var xml = "" + iMapCoord.getSRID() + "" + aId + "";
return xml;
}
this.clickOnObj = function(aXmlStr, aXslUrl, aNothing, aNum) {
var idInx = iArrayTools.findInObjectArray(iServices[0].data[0], "name", "CHURCH_ID");
if (idInx != -1) {
var id = iServices[0].data[aNum][idInx].value;
var url = iChurchObjUrl;
var xml = formChurchObjXML(id);
iXmlTools.postUrl(url, xml, onChurchObjBack, "xml", "");
}
}
function onChurchObjBack(aXmlDoc) {
iChurchXmlDoc = iThisClass.fixDocUrl(aXmlDoc);
hideObj("mapContainer");
hideObj("searchBarTd");
var htmlStr = iXmlTools.XMLDOCToXSL(aXmlDoc, iThisAppPath + "xsl/churchPage.xsl", "txt");
var div = iDoc.getElementById("churchPage");
div.innerHTML = htmlStr;
showObj("churchPage");
iCurrThumbId = "";
setTimeout(loadFirstPict, 1000);
}
this.fixDocUrl = function(aDocData){
var imgArr = aDocData.getElementsByTagName("IMAGES_ITEM");
var i=0;
for (i=0; i";
return xmlStr;
}
this.vaivorykstes = function (aId) {
if (iLastChurchId != aId) {
iLastChurchId = aId;
var url = iFrescoObjUrl;
var xml = formFrescoXML(aId);
var div = iDoc.getElementById("frescoPage");
div.innerHTML = 'Indlæser...
';
hideObj("churchPage");
showObj("frescoPage");
iXmlTools.postUrl(url, xml, onFrescoObjBack, "xml", "text/xml");
}
else {
hideObj("churchPage");
showObj("frescoPage");
}
}
this.vaivorykstes1 = function (aId) {
showObj("churchPage");
hideObj("frescoPage");
}
function onFrescoObjBack (aXmlDoc) {
iFrescoXmlDoc = iThisClass.fixDocUrl(aXmlDoc);
var htmlStr = iXmlTools.XMLDOCToXSL(aXmlDoc, iThisAppPath + "xsl/frescoPage.xsl", "txt");
var div = iDoc.getElementById("frescoPage");
div.innerHTML = htmlStr;
iLastFrescoId = "";
iLastTopFrescoPictId = "";
setTimeout(loadFirstFresco, 1000);
}
function loadFirstFresco(){
if (iFrescoXmlDoc){
var imageItem = iChurchXmlDoc.getElementsByTagName("IMAGES_ITEM");
var i=0;
var objId = null;
var imgId = null;
for (i=0; i -1);
else if (ins.length > 0){
words = getWord(ins);
if (words.length > 0) {
clearOutput();
for (var i=0; i 0 && posi < words.length-1){
if (posi >=0) setColor(posi, "#fff", "black");
else input = textfield.value;
setColor(++posi, "#7A7B7B", "white");
textfield.value = outp.childNodes[posi].firstChild.nodeValue;
setSelectedItemValue(outp.childNodes[posi].firstChild.nodeValue);
if (posi > 10) outp.scrollTop += 20; //scroll in div
}
}
else if (key == 38) { //Key up
if (words.length > 0 && posi >= 0){
if (posi >=1) {
setColor(posi, "#fff", "black");
setColor(--posi, "#7A7B7B", "white");
textfield.value = outp.childNodes[posi].firstChild.nodeValue;
setSelectedItemValue(outp.childNodes[posi].firstChild.nodeValue);
if ((words.length - posi) > 10) outp.scrollTop -= 20; //scroll in div
}
else{
setColor(posi, "#fff", "black");
textfield.value = input;
setSelectedItemValue(input);
textfield.focus();
posi--;
}
}
}
else if (key == 27){ // Esc
textfield.value = input;
setSelectedItemValue(input);
setVisible("hidden");
posi = -1;
oldins = input;
}
else if (key == 13) { //Enter
if (posi < 0) return; //if nothing selected then do nothing
textfield.value = outp.childNodes[posi].firstChild.nodeValue;
setSelectedItemValue(outp.childNodes[posi].firstChild.nodeValue);
setVisible("hidden");
posi = -1;
oldins = textfield.value;
}
else if (key == 8){ // Backspace
posi = -1;
oldins=-1;
if (textfield.value == "") setSelectedItemValue("");
}
}
// clear hidden value if everything deleted
if (key == 8 || key == 46) { // Backspace or Del
if (document.getElementsByName(fieldId)[0].value == "") setSelectedItemValue("");
}
}
function fieldOnBlur() {
if (document.getElementById(shadowDivId).style.visibility == "visible") {
if (posi >= 0)
oldins = outp.childNodes[posi].firstChild.nodeValue;
else oldins = input;
setVisible("hidden");
posi = -1;
//document.getElementById(fieldId).select();
}
}
var mouseHandler = function() {
for (var i=0; i 1) {
w = w.substring(0, 1).toUpperCase() + w.substring(1, w.length).toLowerCase();
}
else w = w.toUpperCase();
toks[i] = w;
}
start = toks.join(" ");
var url = getterUrl + "?word=" + escape(start);
xmlHttp.getUrl(url, onWordsXmlBack, "xml");
}
function onWordsXmlBack (newXml) {
if (newXml != null) {
var rsn = newXml.getElementsByTagName(rowsetTag).item(0);
if (rsn != null) {
var rows = rsn.getElementsByTagName("ROW");
var rowslen = rows.length;
var i;
var cure;
for (i=0; i