
	var Map = function(){
		var pointersEnabled = []
		pointersEnabled[1] = false
		pointersEnabled[2] = false
		pointersEnabled[3] = false

		return {

			addMapTransparency: function(){
				getEle('map_image').className = 'map_transperant'
				getEle('map_pointer1').className = getEle('map_pointer2').className = getEle('map_pointer3').className = 'map_pointer map_transperant'
			},

			removeMapTransparency: function(){
				if ( getEle('map_search').style.display == "none" && getEle('map_help').style.display == "none" ){
					getEle('map_image').className = ''
					getEle('map_pointer1').className = getEle('map_pointer2').className = getEle('map_pointer3').className = 'map_pointer'
				}
			},

			showMapSearch: function(){
				Map.addMapTransparency()
				getEle('map_search').style.display = "block"
				Map.hideMapHelp()
			},

			hideMapSearch: function(){
				getEle('map_search').style.display = "none"
				Map.removeMapTransparency()
			},

			showMapHelp: function(){
				Map.addMapTransparency()
				getEle('map_help').style.display = "block"
				Map.hideMapSearch()
			},

			hideMapHelp: function(){
				getEle('map_help').style.display = "none"
				Map.removeMapTransparency()
			},

			searchMapByZip: function(iZip, iPointer){
				Map.disableMapPointer( iPointer )
				if ( iZip == "" ){
					Map.disableMapPointer( iPointer )
					Map.hideMapSearch()
					return
				}
				var aResult = []
				for( var i = 0; i < aMapZipCity.length; i++ ){
					if ( aMapZipCity[i].zip.indexOf(iZip) == 0 ) {
						aResult[aResult.length] = aMapZipCity[i];
					}
				}
				Map.drawMapSearchResults(aResult, iPointer)
			},

			searchMapByCity: function(sCity, iPointer){
				Map.disableMapPointer( iPointer )
				if ( sCity == "" ){
					Map.disableMapPointer( iPointer )
					Map.hideMapSearch()
					return
				}
				sCity = sCity.toLowerCase()
				var aResult = []
				for( var i = 0; i < aMapZipCity.length; i++ ){
					if ( aMapZipCity[i].city.toLowerCase().indexOf(sCity) == 0 ) {
						aResult[aResult.length] = aMapZipCity[i];
					}
				}
				Map.drawMapSearchResults(aResult, iPointer)
			},

			drawMapSearchResults: function( aResults, iPointer ){
				var oResultDiv = getEle('map_search_result')
				var oList = document.createElement('ul');
				var oItem, oText, oListOld
				oListOld = oResultDiv.getElementsByTagName('ul')[0]
				if ( typeof(oListOld) != 'undefined' ) oResultDiv.removeChild(oListOld);

				if ( aResults.length == 1 ){
					getEle('map_zip_'+iPointer).value = aResults[0].zip
					getEle('map_city_'+iPointer).value = aResults[0].city
					Map.enableMapPointer(iPointer, aResults[0].x, aResults[0].y)
					Map.hideMapSearch()
				} else if( aResults.length == 0){
					getEle('map_search_result_intro').innerHTML = "Der blev ikke fundet byer der matcher."
					Map.showMapSearch()
				} else {
					getEle('map_search_result_intro').innerHTML = "Der blev fundet " + aResults.length + " byer. Tryk på en by for at sætte udgangspunkt"
					for( var i = 0; i < aResults.length; i++ ){
						oText 	= document.createTextNode(aResults[i].zip + ' ' + aResults[i].city);
						oItem 	= document.createElement('li');
						oItem.setAttribute('zip', aResults[i].zip)
						oItem.setAttribute('city', aResults[i].city)
						oItem.setAttribute('map_x', aResults[i].x)
						oItem.setAttribute('map_y', aResults[i].y)
						oItem.onmouseover = function(){ Map.className  = 'hover'}
						oItem.onmouseout = function(){	Map.className  = ''}
						oItem.onclick = function () {
							getEle('map_zip_'+iPointer).value = this.getAttribute('zip')
							getEle('map_city_'+iPointer).value = this.getAttribute('city')
							Map.enableMapPointer(iPointer, this.getAttribute('map_x'), this.getAttribute('map_y') )
							Map.hideMapSearch()
						}
						oItem.appendChild(oText);
						oList.appendChild(oItem);
					}
					oResultDiv.appendChild(oList);
					Map.showMapSearch()
				}
				return true
			},

			enableMapPointer: function( iPointer, x, y ){
				var o = getEle('map_pointer'+iPointer)
				o.style.left = x + 'px'
				o.style.top = y + 'px'
				o.style.display = "block"
				pointersEnabled[iPointer] = true
			},

			enableMapPointerByZip: function( iZip, iPointer ){
				var o = getEle('map_pointer'+iPointer)
				var aResult
				for( var i = 0; i < aMapZipCity.length; i++ ){
					if ( aMapZipCity[i].zip.indexOf(iZip) == 0 ) {
						aResult = aMapZipCity[i];
					}
				}
				if ( typeof(aResult) != "undefined" ){
					Map.enableMapPointer( iPointer, aResult.x, aResult.y )
				}
			},

			disableMapPointer: function( iPointer ){
				getEle('map_pointer'+iPointer).style.display = "none"
				pointersEnabled[iPointer] = false
			},

			getMapCityFromZip: function( iZip ){
				for( var i = 0; i < aMapZipCity.length; i++ ){
					if ( aMapZipCity[i].zip.indexOf(iZip) == 0 ) {
						return aMapZipCity[i].city;
					}
				}
				return ""
			},

			drawPointers: function(){
				if ( getEle('map_zip_1').value != "" ) Map.enableMapPointerByZip( getEle('map_zip_1').value, 1 )
				if ( getEle('map_zip_2').value != "" ) Map.enableMapPointerByZip( getEle('map_zip_2').value, 2 )
				if ( getEle('map_zip_3').value != "" ) Map.enableMapPointerByZip( getEle('map_zip_3').value, 3 )
			},

			getNumberOfEnabledPointer: function(){
				iNumberEnabled = 0
				for(var i=1;i<pointersEnabled.length;i++){
					if ( pointersEnabled[i] == true ) iNumberEnabled++
				}
				return iNumberEnabled
			}
		}
	}();


	// Setting pointers on reload - browser back
	addWindowOnload(Map.drawPointers)
