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 + ""; } } } else { val = iDoc.getElementById(iSearchArr[i].shortName + "|select|" + 1).value; if (val != "") { xml = xml + "<" + getDataNodeName + ">" + val + ""; } } } } 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