var form;
var searchcookie="searchcookie";
var attractioncookie="attractioncookie";
var expires = 7; 
var path="/";
var myUrl=document.location.href;
var search_bureau="sos";
var search_lang="";
//quick search
var search_altp="qs=yes";
var search_startdate="";
var search_enddate="";
var usemapPrefix = null;
var themeVisitDK="visitdk";
if(myUrl.indexOf('?')!= -1)
{
	var tmpMyUrl=myUrl;	myUrl=tmpMyUrl.split("?")[0];
}
// initialize hacks whenever the page loads
window.onload = initializeHacks;			

// setup an event handler to hide popups for generic clicks on the document
document.onclick = hidePopup;
function sortAreaById(a, b) { var x = a.Id;var y = b.Id; return ((x < y) ? -1 : ((x > y) ? 1 : 0));}
function initializeHacks() {
		// this ugly little hack resizes a blank div to make sure you can click
		// anywhere in the window for Mac MSIE 5
		if ((navigator.appVersion.indexOf('MSIE 5') != -1) 	
			&& (navigator.platform.indexOf('Mac') != -1)
			&& getStyleObject('blankDiv')) {
			window.onresize = explorerMacResizeFix;
		}
		resizeBlankDiv();
		// this next function creates a placeholder object for older browsers
		if (!window.event) window.event = false;
		//tkn
		onLoadDaySearch();
		//search onLoad
		onLoadSearch();
		//check if googlemaps in use [one per page]
		if(GetObjByName("googleMapDiv"))
		{
			GLoad();window.onunload = GUnload;			
			
		}
	}
	function resizeBlankDiv() {
		// resize blank placeholder div so IE 5 on mac will get all clicks in window
		if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
		&& (navigator.platform.indexOf('Mac') != -1)
		&& getStyleObject('blankDiv')) {
		getStyleObject('blankDiv').width = document.body.clientWidth - 20;
		getStyleObject('blankDiv').height = document.body.clientHeight - 20;
		}
	}
	function explorerMacResizeFix () {
		location.reload(false);
	}
	function getStyleObject(objectId) {
		
		if(document.getElementById && document.getElementById(objectId)) {	// W3C DOM
			return document.getElementById(objectId).style;
		} else if (document.all && document.all(objectId)) { // MSIE 4 DOM
			return document.all(objectId).style;
		} else if (document.layers && document.layers[objectId]) { // NN 4 DOM.. note: this won't find nested layers
			return document.layers[objectId];
		} else {
			return false;
		}
	}
	function hidePopup() {	
			if(styleTargetObject) {
				styleTargetObject.display='none';
				if(IsIE) styleDivShim.display = styleTargetObject.display;
			}
		}
function getDomainName()
{
	var domain =null;var  _dn=document.domain;		if(_dn.indexOf(".sonneundstrand.de")!=-1){domain="sonneundstrand.de";}	else if(_dn.indexOf(".sologstrand.dk")!=-1){domain="sologstrand.dk";}	else if(_dn.indexOf(".sologstrand.se")!=-1){domain="sologstrand.se";}	else if(_dn.indexOf(".sologstrand.no")!=-1){domain="sologstrand.no";}	else if(_dn.indexOf(".sologstrand.com")!=-1){domain="sologstrand.com";}	else if(_dn.indexOf(".sologstrand.nl")!=-1)	{domain="sologstrand.nl";}	return domain;
}

function GetObjByName(navn) {return document.getElementById(navn);}

function setDaySearchCookie (name, value, lifespan, access_path, domain) {
      
  var cookietext = name + "=" + escape(value)  ;
    if (lifespan != null) {  
      var today=new Date();     
      var expiredate = new Date();      
      expiredate.setTime(today.getTime() + 1000*60*60*24*lifespan)
      cookietext += "; expires=" + expiredate.toGMTString();
    }
     //delete (remove later)
    if(value!="Deleted")
    {
		var _dom=getDomainName();
		if (_dom != null) { 
		cookietext += "; DOMAIN="+_dom; 
		}
    }
    if (access_path != null) { 
      cookietext += "; PATH="+access_path ;
    }
   document.cookie = cookietext; 
   return null ; 
}

function getDaySearchCookie(Name) {
  var search = Name + "="                       
  var CookieString = document.cookie            
  var result = null                               
  if (CookieString.length > 0) {                
    offset = CookieString.indexOf(search)       
    if (offset != -1) {                         
      offset += search.length                   
      end = CookieString.indexOf(";", offset)   
      if (end == -1)                            
        end = CookieString.length               
      result = unescape(CookieString.substring(offset, end))         
                                                
      } 
    }
   return result                                
}

function deleteCookie(Name, Path) {  setDaySearchCookie(Name,"Deleted", -1, Path)}
function getOriginalIdFromASCXControlId(id){var idx= id.indexOf("_");return id.substring(idx +1, id.length);}
function getPrefixFromASCXControlId(id){	var idx= id.indexOf("_");return id.substring(0, idx);}

function udfyldSearchForm()
{
	var c=getDaySearchCookie(searchcookie);
	if(c!=null)
	{
		var l=form.elements.length;
		for(var i=0;i <l;i++)
		{
			var obj =form.elements[i];
			var id=getOriginalIdFromASCXControlId( obj.id);	
			if(id !="subregion" && id !="destination" && id !="startdate")
			{ 
				var data=getDaySearchCookieValue(c,id);
				if(data != null)
				{
					switch (obj.type)
					{
						case "checkbox": 
							if(data=='yes'){obj.checked=true;}
							else	{obj.checked=false;}
							break;
						case "select-one": 
							chooseSelectOneValue(obj,data, getPrefixFromASCXControlId(obj.id));
							break;
					}
				}
			}
			else if(id=="startdate")
			{
				var data=getDaySearchCookieValue(c,id);
				if(data!=null)
				{
					var cookieDate=CreateDateFromString(data);
					if(cookieDate >= CreateDateFromString(startdate) &&  cookieDate <= CreateDateFromString(enddate))
					{
						obj.value=data;
					}
				}
			}
		}
	}
	UdfyldSubRegions();
	UdfyldDestinations();
	InitMapData();
}
function UdfyldSubRegions()
{
	var c=getDaySearchCookie(searchcookie); var selVal=null;
	if(c!=null)
	{
		selVal= getDaySearchCookieValue(c, "subregion");
	}
	
	var l=form.elements.length;
	for(var i=0;i <l;i++)
	{
		var obj =form.elements[i]; var id=getOriginalIdFromASCXControlId( obj.id);	var prefix= getPrefixFromASCXControlId(obj.id);
		if( id =="config" )
		{ 
			var regionID =getValueFromConfigData("region", prefix);
			if(regionID!=null)
			{
				UdfyldSubRegion(regionID, selVal , prefix, true);
			}
		}
		else if(id=="region")
		{
			UdfyldSubRegion(getSelectedValue(obj), selVal , prefix, true);	
		}
	}
	
}
//selVal [cookie value]
function UdfyldSubRegion(rid, selVal, prefix, fromUdfyldSubRegions)
{
	var sr=GetObjByName(prefix + "_subregion" );
	if(sr!=null)
	{
		var lng=sr.length;var n=1;
		if(fromUdfyldSubRegions && lng == 0)
		{
			sr.options[0] = new Option(ChooseSubRegion,"0");
		}
		else if(lng > 0 && !fromUdfyldSubRegions  )
		{
			clearAllSelectItems(sr);
			sr.options[0] = new Option(ChooseSubRegion,"0");
		}
		else if(lng > 0 && fromUdfyldSubRegions  )
		{
			//forudfyldte destinationer
			var preSubRegions  = sr.options[0].value=="sgml";n=0;
			clearAllSelectItems(sr);
			if(!preSubRegions)
			{
				sr.options[0] = new Option(ChooseSubRegion,"0");
				n=1;
			}
		}
		else {n=0;}
		
		if(rid!=0)//subregion i een region
		{
			//error hvis bureau og foruddefineret???
			var dataArr=eval('arrSR_'+rid +'_' + prefix  ).split('*');
			for (var i=0;i<dataArr.length;i+=2)
			{sr.options[n] = new Option(unescape(dataArr[i+1]) ,dataArr[i]);n++;}
			//valgt flere areas!!!
			if (isManySubRegionChosen(sr, selVal))
			{
				sr.options[n] = new Option(ManySubRegionChosen , selVal);	
			}
			chooseSelectOneValue(sr,selVal);
		}
		//udfyld  subregionchosen
		if(usemapPrefix == prefix) setSubRegionChosenValue(prefix, selVal);
	}
}

function SelectSubRegionFromHandler(prefix)
{
	var rid;var selectObject= GetObjByName(prefix + "_subregion") 
	GetObjByName(prefix + "_region") ? rid=  getSelectedValue(GetObjByName(prefix + "_region")) : rid=getValueFromConfigData("region", prefix);
	
	if(rid!=null)
	{
		var  subRegionChosen =  getSubRegionChosenValue(prefix);
		if(subRegionChosen == null|| subRegionChosen.length ==0)
		{
			chooseSelectOneValue(selectObject, 0);			
		}
		else
		{
			removeManySubRegionChosenItem(prefix, subRegionChosen);
			//valgt flere areas!!!
			if (isManySubRegionChosen(selectObject, subRegionChosen))
			{
				selectObject.options[selectObject.length] = new Option(ManySubRegionChosen , subRegionChosen);	
				chooseSelectOneValue(selectObject, subRegionChosen);
			}
		}
		UdfyldDestination(subRegionChosen,0, prefix, false );
	}
	daySearch(prefix);
}
//undersøger om flere valgt og de findes i subregion control
function isManySubRegionChosen(selectObject,  selectedValue)
{
	var res  =false; 	var SelectedValues = new Array();	var tmpCount=0;
	if (selectedValue!= null )
	{
		SelectedValues= selectedValue.split (':');
		
		for(var i=0; i <SelectedValues.length; i++)
		{
			if(SelectedValues[i] != null && SelectedValues[i].length >0)
			{
				for(var y=0;y < selectObject.length;y++)
				{
					var v=selectObject.options[y].value; if(v==SelectedValues[i]){tmpCount++;break;}
				}
			}
		}
		(tmpCount  >1) ? res =true :res = false; 
	}
	return res;
}
function UdfyldDestinations()
{
	var c=getDaySearchCookie(searchcookie); var selVal=null;
	if(c!=null)
	{
		selVal= getDaySearchCookieValue(c, "destination");
	}
	var l=form.elements.length;
	for(var i=0;i <l;i++)
	{
		var obj =form.elements[i]; var id=getOriginalIdFromASCXControlId( obj.id);	var prefix= getPrefixFromASCXControlId(obj.id);
		if( id =="config" )
		{ 
			var chosenSubRegions =getValueFromConfigData("subregion", prefix);
			if(chosenSubRegions!=null)
			{
				UdfyldDestination(chosenSubRegions, selVal , prefix, true);
			}
		}
		else if(id=="subregion")
		{
			UdfyldDestination(getSelectedValue(obj), selVal , prefix, true);	
		}
	}
}
//destination sort
function destinationObj(id,title)
{
	this.id=id;	this.title=title;
}
function SortDestinationObjArray(obj1,obj2)
{
	if(obj1.title > obj2.title) return 1;	if(obj1.title < obj2.title) return -1; 	return 0;
}

function UdfyldDestination(chosenSubRegions, selVal, prefix, fromUdfyldDestinations)
{
	var dt=GetObjByName(prefix + "_destination" );
	if(dt!=null)
	{
		var lng=dt.length;var n=1;
		if(fromUdfyldDestinations && lng == 0)
		{
			dt.options[0] = new Option(ChooseDestination,"0");
		}
		else if(lng > 0 && !fromUdfyldDestinations  )
		{
			clearAllSelectItems(dt); dt.options[0] = new Option(ChooseDestination,"0");
		}
		else if(lng > 0 && fromUdfyldDestinations  )
		{
			//forudfyldte destinationer
			var preDestinations  = dt.options[0].value=="sgml";n=0; clearAllSelectItems(dt);
			if(!preDestinations)
			{
				dt.options[0] = new Option(ChooseDestination,"0");	n=1;
			}
		}
		else {n=0;}
		
		if(chosenSubRegions == 0 ) //region
		{
			var regionID =getValueFromConfigData("region", prefix);	if(!regionID){ regionID = getSelectedValue(GetObjByName(prefix + "_region")); }	
			if(regionID > 0) //hent alle
			{
				var areas=GetAreaChildren(regionID);
				if(areas.length>0)
				{
					chosenSubRegions=""; for(var i=0;i< 	areas.length;i++) 	{var areaChild= areas[i];	chosenSubRegions +=  areaChild.Id + ":"; }
				}
			}
		}
		
		if(chosenSubRegions != 0)
		{
			var arrDestObj = new Array(); var arrChosenSubRegions= chosenSubRegions.split (':');var indexArrDestObj =0;
			for(var k=0;k < arrChosenSubRegions.length;k++)
			{
				if(arrChosenSubRegions[k].length > 0)
				{
					var dataArr=eval('arrD_'+ arrChosenSubRegions[k] + '_'+ prefix  ).split('*');
					for (var i=0;i<dataArr.length;i+=2)
					{
						var dest = new destinationObj(dataArr[i], dataArr[i+1]);//ny desti
						arrDestObj[indexArrDestObj]=dest;indexArrDestObj++;//add desti 
					}
				}
			}
			arrDestObj.sort(SortDestinationObjArray);//sort destiArray
			for(var  y=0;y < arrDestObj.length;y++) {dt.options[y+1] = new Option(arrDestObj[y].title, arrDestObj[y].id);}
			chooseSelectOneValue(dt,selVal);
		}
	}
}
function chooseSelectOneValue(obj,value, prefix)
{
	var l=obj.length;
	for(var i=0;i < l;i++)
	{
		var v=obj.options[i].value;
		if(v==value)	{obj.options.selectedIndex=i;break;	}
	}
}
function getSelectedValue(obj)
{
	var idx=obj.options.selectedIndex;
	return obj.options[idx].value;
}

function gemSearchData(prefix)
{
	var sData="";
	var l=form.elements.length;
	for(var i=0;i <l;i++)
	{
		var obj =form.elements[i];
		if(obj.id.indexOf(prefix+ "_") != -1)
		{	
			var id=getOriginalIdFromASCXControlId(obj.id); 
			//pga. flere subregions
			if(id!= "subregion" || (id=="subregion" && usemapPrefix != prefix ))
			{
				switch (obj.type)
				{
					//kun config
					case "hidden":
						if(id=="config")
						{
							//hent config values
							if(obj.value.length > 0)
							{
								var values = obj.value.split("#");
								if(values.length >0)
								{
									for (var z=0;z<values.length;z++)
									{
										if(values[z].length >0)
										{
											sData+="#"+ values[z];
										}
									}
								}
							}
						}
						break;
					case "checkbox": 
						//udvidet hack 
						if(obj.checked)
						{
							(id.indexOf(themeVisitDK) != -1 )?  (sData+="#"+ themeVisitDK + "=" + id.split('_') [1]) : 0;
							sData+="#"+id+"=yes";
						}
						break;
					case "select-one": 
						var val=getSelectedValue(obj);
						if(val !="0")
						{
							sData+="#"+id+"="+val;
						}
						break;
					case "text": 
						if(id=="startdate")
						{
							sData+="#startdate="+ obj.value;
							//enddate
							var daysSelect= GetObjByName(prefix+ "_days") ;
							var _ad= GetValueFromDropDown(daysSelect);
							var _ed=AddDaysToDate(CreateDateFromString(obj.value),_ad);
							var _edd=(_ed.getDate() <10) ? ('0'+ _ed.getDate()):_ed.getDate(); 
							var _edm=((_ed.getMonth() + 1) <10) ? ('0'+ (_ed.getMonth() + 1)):(_ed.getMonth() + 1); 
							sData+="#enddate=" + _edd+"-" + _edm+"-"+ takeYear(_ed);
						}
						break;
				}
			}
			else
			{	//subregions
				var subregionChosenValue=getSubRegionChosenValue(prefix);
				if(subregionChosenValue != null && subregionChosenValue.length > 0 )
				{
					sData+="#subregion=" + subregionChosenValue;
				}
			}
		}
	}
	setDaySearchCookie(searchcookie,sData,expires,path);
	return sData;
}

function setSubRegionChosenValue(prefix, value)
{
	var subregionChosen=GetObjByName(prefix + "_subregionchosen"); 
	value != null ? subregionChosen.value= value : subregionChosen.value= "";
}
function getSubRegionChosenValue(prefix)
{
	var subregionChosen; subregionChosen= GetObjByName(prefix + "_subregionchosen");  return subregionChosen.value;
}

function submitDaySearchForm(prefix)
{
	var res= getTotal(prefix);
	if(res > 0)
	{
		var sData =gemSearchData(prefix).replace(/#/g,'&');
		window.location.href=  searchPage+ "?" + sData + "&rurl="+ myUrl;
	}
}
function onLoadDaySearch()
{	
	form=GetObjByName("DaySearchForm"); udfyldSearchForm();
}

/*tkn henter value for selected dropdown*/
function GetValueFromDropDown(obj){	var i= GetSelectedIndexFromDropDown(obj);return obj.options[i].value;}
function GetSelectedIndexFromDropDown(obj){return parseInt(obj.selectedIndex);}
function getDaySearchCookieValue(data,name) {
	var tmpData = data; 
	if(tmpData == null) {return null; }
	var arrData = tmpData.split("#"); var num=0;
	while (num < arrData.length)
	{
		var tmp=arrData[num];
		if(tmp.length > 0)
		{
			if(tmp.indexOf(name+"=")!=-1)
			{
				var tmp2=  tmp.split("=");
				if(tmp2[0] == name)
				{
					return ( tmp2[1].length > 0 ) ? tmp2[1] : null; 
				}
			}
		}
		num+=1;
	}
 	return null; //ingen value
}
function removeManySubRegionChosenItem(prefix, selVal)
{
	var arrItems = new Array(); var obj = document.getElementById(prefix + "_subregion");
	var tmpLen=0; var selIndex=0;
	if(obj != null)
	{
		//gem alle andre values!
		var l=obj.length;
		for(var i=0;i < l;i++)
		{
			var v=obj.options[i].text;
			if(v!=ManySubRegionChosen)	
			{
				var opt =	new Option(v ,obj.options[i].value); arrItems[i]=opt;
				if(selVal != null && opt.value==selVal)
				{
					selIndex=tmpLen;
				}
				tmpLen++;
			}
		}
		clearAllSelectItems(obj);
		//add items
		for(var i=0; i < tmpLen; i++)
		{
			obj.options[i] =  arrItems[i];
			if(obj.options[i].value == selVal)
			{
				obj.options.selectedIndex=i;	
			}
		}
	}
}
function clearAllSelectItems(obj)
{
	var lng=obj.length;
	for(i=0;i<lng;i++)//clear alle options
	{obj.options[0] = null;} 
}
function ShowAllChosenSubRegion(prefix)
{
	var subregionChosenValue = getSubRegionChosenValue(prefix);
	
	if(subregionChosenValue  && subregionChosenValue.length > 0  && subregionChosenValue != 'null')
	{
		SelectedValues= subregionChosenValue.split (':');
		for(var i=0; i <SelectedValues.length; i++)
		{
			if(SelectedValues[i] != null && SelectedValues[i].length >0)
			{
				var areaObj=GetArea(SelectedValues[i]);
				if(areaObj && areaObj.Type==2)
				{
					var mapDiv = GetObjByName('div' +SelectedValues[i]);
					
					if(mapDiv) 
					{ 
						mapDiv.style.visibility=="hidden" ? mapDiv.style.visibility="visible" : 0 ;
					}
					else //create new [ved load]
					{
						var mapMainDiv = GetObjByName('mapMainDiv')
						var newMapDiv = document.createElement('div');
						
						newMapDiv.id = 'div' + areaObj.Id;
						newMapDiv.innerHTML = '<img alt="'+ areaObj.Name + '" title="'+ areaObj.Name  +'" border="0" src="' + areaObj.ImgSrc  +'"  />';
						newMapDiv.style.visibility="hidden";
						newMapDiv.style.position = "absolute"; 
						
						mapMainDiv.appendChild(newMapDiv);
						newMapDiv.style.visibility="visible";
						
						
					}
				}
			}
		}
	}
	
}
function RemoveAllChosenSubRegion(prefix)
{
	var subregionChosenValue = getSubRegionChosenValue(prefix);
	
	if(subregionChosenValue != null && subregionChosenValue.length > 0 )
	{
		SelectedValues= subregionChosenValue.split (':');
		for(var i=0; i <SelectedValues.length; i++)
		{
			if(SelectedValues[i].length >0)
			{
				var mapDiv = GetObjByName('div' +SelectedValues[i]);
				mapDiv ? mapDiv.style.visibility="hidden" : 0 ;
			}
		}
	}
	
}
function SubRegionOnChange(obj)
{
	var prefix=getPrefixFromASCXControlId(obj.id);
	var srId=getSelectedValue(obj);
	//div's remove
	if(prefix==usemapPrefix)
	{
		RemoveAllChosenSubRegion(prefix);
		removeManySubRegionChosenItem(prefix, srId);
		if(	srId > 0 ){setSubRegionChosenValue(prefix, srId); 		ShowAllChosenSubRegion(prefix);} else {setSubRegionChosenValue(prefix, "");}
	}
	else
	{
		removeManySubRegionChosenItem(prefix, srId);//i tilfælde af forudvalg uden kort [samme data]
		
	}
	UdfyldDestination(srId,0, prefix, false );
	//search
	altParamsChange(obj);
}
function addSubRegionChosenValue(prefix, areaid)
{
	var oldValue= getSubRegionChosenValue(prefix);
	if(oldValue && oldValue != 'null' && oldValue.length > 0 )
	{
		setSubRegionChosenValue( prefix, oldValue+":"+areaid);	
	} 
	else
	{
		setSubRegionChosenValue( prefix, areaid);	
	}
}
function removeSubRegionChosenValue(prefix, areaid)
{
	var oldValue= getSubRegionChosenValue(prefix); var rest = oldValue.split(':'); var newValue="";	var arrNewValue= new Array();
	for(var k=0;k< rest.length;k++)
	{
		(rest[k].length > 0 && rest[k] != areaid ) ?  arrNewValue[arrNewValue.length]= rest[k] : 0;
	}
	
	if(arrNewValue.length > 0 )
	{
		newValue=arrNewValue.join(":");
	}
	
	setSubRegionChosenValue(prefix, newValue);
}

function RegionOnChange(obj)
{
	var rId=getSelectedValue(obj);
	var prefix = getPrefixFromASCXControlId(obj.id)
	
	if(usemapPrefix == prefix)//clear subregions
	{
		RemoveAllChosenSubRegion(prefix);
		setSubRegionChosenValue(prefix, "");
		InitMap(GetArea(rId)); //error - mapOver hvis areaObj isnull
	}
	
	UdfyldSubRegion(rId,null, prefix , false );
	UdfyldDestination(0,null, prefix , false );
	
	//search
	altParamsChange(obj);
}
function getValueFromConfigData(name, prefix)
{
	var res =null; var cc=GetObjByName(prefix + "_config");
	if(cc!=null && cc.value.length > 0)
	{
		var values = cc.value.split("#");
		for (var i=0;i<values.length;i++)
		{
			var _name=values[i].split("=")[0];var _val=values[i].split("=")[1];
			if(_name  == name && _val.length >0)
			{
				res = _val;	break;
			}	
		}
	}
	return res;
}
//tkn dk format date
function CreateDateFromString( sDate )
{
	var aDate = ( sDate.indexOf( "-" ) != -1 ) ? sDate.split( '-' ) : sDate.split( ',' );
	//return  (new Date(aDate[ 2 ], aDate[ 1 ]-1,  aDate[ 0 ] ));
	return  (new Date(aDate[ 2 ], aDate[ 1 ]-1,  aDate[ 0 ] , "12","0","0"));
}
function takeYear(theDate) {
	x = theDate.getYear();
	var y = x % 100;
	y += (y < 38) ? 2000 : 1900;
	return y;
}
function AddDaysToDate(_date,x){
	var _newDate= new Date(_date.getTime() +  (x* (1000*60*60*24))); 
	return _newDate;
}
function GetDayDifference(earlierdate, laterdate) {var difference =laterdate.getTime()- earlierdate.getTime(); var daysDifference = Math.floor(difference/1000/60/60/24);return daysDifference;}
function makeRequest(func, params, prefix) {
	var httpRequest;
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        httpRequest = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    if (!httpRequest) {
		return false;
    }
    httpRequest.onreadystatechange = function() { getAjaxContent(func,httpRequest,params, prefix); };
    httpRequest.open("GET", "/nlajax/nlajax.aspx?f="+ func +"&search_altp="+ params +"&search_lang="+ search_lang+"&search_bureau="+ search_bureau +"&search_startdate="+ search_startdate +"&search_enddate="+ search_enddate,  true);
    httpRequest.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
	httpRequest.send(null);
	
}
// Netminers tracking
document.nmCustomerId = 'sologstrand';
function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; }
function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); }return null; }
function eraseCookie(name) { createCookie(name,"",-1); }
function postEvent( type, subType, name, text, number, ignorePageReload ){
   if(ignorePageReload) { var cn = type + '_' + subType + '_' + name + '_' + text + '_' + number; var c = readCookie(cn); if(c == document.location) return; createCookie(cn, document.location); eraseCookie(cn); }
   try{var loc = new String(window.document.location);if(loc.length>800)loc=loc.slice(0,796)+'...';var post = document.createElement('script');
   post.src = 'http'+(document.location.protocol=='https:'?'s':'')+'://'+document.nmCustomerId+'.netminers.dk/tracker/dispatch.aspx?action='+type+'&n='+Math.random()+'&nav='+encodeURIComponent(loc)+'&cid='+document.nmCustomerId+'&sub='+subType+'&ti1='+encodeURIComponent(name)+'&tva='+encodeURIComponent(text)+'&num='+encodeURIComponent(''+number);
   var parent = document.getElementsByTagName('body');if( parent.length == 0 )parent = document.getElementsByTagName('head');parent[0].appendChild(post)}catch(e){}
}
function trackEvent(functionName,responseValue) { postEvent( 'PageView', functionName, responseValue, '', '' ); }
// End Netminers tracking
function daySearch(prefix)
	{
		var _params = getParamsForPrefix(prefix);search_lang=language;makeRequest("search", _params, prefix);
	}
function initRules(prefix)
{
	//check rules
	var objStatusTextDiv = GetObjByName(prefix + "_statustxt") ;
	if (objStatusTextDiv && GetObjByName(prefix + "_region"))
	{
		var startdate = GetObjByName(prefix+ "_startdate").value;
		var days=  parseInt(GetValueFromDropDown(GetObjByName(prefix+ "_days"))) ;
		var subregions = getSubRegionChosenValue(prefix);	var total = getTotal(prefix);
		var discount = GetObjByName(prefix + "_discount").checked; 						
		checkRule(startdate, days, subregions, language, total, objStatusTextDiv, discount);
	}
}
function getAjaxContent(func,httpRequest, params, prefix) {    
	if (httpRequest.readyState == 4) {
        if (httpRequest.status == 200) {           
            var data = httpRequest.responseText;
            if(data.length>0)
            {
				switch(func)
				{
					case "nl": // newsletter - ingen efterbehandlingen af data
						var nl_div=document.getElementById("nl_result");
						if(nl_div!=null)//vis resultat i div nl_resultat
						{
							nl_div.innerHTML=data;
						}
						break;
					case "resr": // research form & soeghus.aspx
						var reSearchTotalInput=document.getElementById("reSearchTotalInput");
						if(reSearchTotalInput!=null)//vis resultat i reSearchTotalInput
						{
							reSearchTotalInput.value=data;
						}
						udskrivData();
						break;
					case "search": // search form [SearchQuick]
						//vi skal have prefix pga. flere ascx's
						var SearchTotalInput=document.getElementById(prefix + "_SearchTotalInput");
						if(SearchTotalInput!=null) SearchTotalInput.value=data;
						udskrivDataSearch(prefix);
						break;
					//case "template": //template [kan implementer xml eller lign. som returvalue osv.]
					//	break;
						
				}//switch end
            } 
			
        } else {
        //alert('Error:'+ httpRequest.status);
        }
    }    
}
function altParamsChange(obj)
{
	var prefix= getPrefixFromASCXControlId(obj.id);	//checkbox og total==0? || themeVisitDK != -1
	/*
	var id=getOriginalIdFromASCXControlId( obj.id);
	if(obj.type=="select-one" && id == "destination") 
	{
		if(getSelectedValue(obj) != "0" )
		{
			var objSubregion = GetObjByName (prefix + "_subregion"); var val = getSelectedValue(obj);
			if(objSubregion && getSelectedValue (objSubregion) == "0")//select subregion findes og selected != "0"
			{
				var subRegion = 23;//find desti. subregion
				chooseSelectOneValue(objSubregion, subRegion);//select den rigtige subregion
				SubRegionOnChange(objSubregion, true);
				chooseSelectOneValue(obj, val);//select den rigtige destination
	
			}
		}
		  
	}
	*/
	(obj.type=='checkbox' && obj.checked  && (obj.id.indexOf(themeVisitDK) == -1) && (getTotal(prefix) <= 0 )) ?  initRules(prefix) : daySearch(prefix);
}
function onLoadSearch()
{
	var res=""; var l=form.elements.length;
	for(var i=0;i <l;i++)
	{
		var obj =form.elements[i]; var id=getOriginalIdFromASCXControlId( obj.id); var _prefix=getPrefixFromASCXControlId(obj.id);
		if(id=="config")
		{
			daySearch(_prefix);
		}
	}
}
function getParamsForPrefix(prefix)
{
	var bureauDefined=false;
	var res=""; var l=form.elements.length;
	for(var i=0;i <l;i++)
	{
		var obj =form.elements[i]; var id=getOriginalIdFromASCXControlId( obj.id); var _prefix=getPrefixFromASCXControlId(obj.id);
		if(_prefix==prefix)
		{
			switch (obj.type)
			{
				//kun config
				case "hidden":
					if(id=="config")
					{
						//hent config values
						if(obj.value.length > 0)
						{
							var values = obj.value.split("#");
							if(values.length >0)
							{
								for (var z=0;z<values.length;z++)
								{
									if(values[z].length >0)
									{
										if(values[z].split("=")[0] == "bureau")
										{
											search_bureau=values[z].split("=")[1];
											bureauDefined=true;
										}
										else
										{
											res+=";"+ values[z];
										}
									}
								}
							}
						}
					}
					break;
				case "checkbox": 
					//udvidet hack
					if(obj.checked)
					{
						 ((id.indexOf(themeVisitDK) != -1) )?  (res+=";"+ themeVisitDK + "=" + id.split('_') [1]) : (res+=";"+id+"=yes");
					}
					break;
				case "select-one": 
					var val=getSelectedValue(obj);
					if(val !="0")
					{
						res+=";"+id+"="+val;
					}
					break;
				case "text": 
					if(id=="startdate")
					{
						search_startdate=obj.value;
						//enddate
						var daysSelect= GetObjByName(prefix+ "_days") ;
						var _ad= GetValueFromDropDown(daysSelect);
						var _ed=AddDaysToDate(CreateDateFromString(obj.value),_ad);
						var _edd=(_ed.getDate() <10) ? ('0'+ _ed.getDate()):_ed.getDate(); 
						var _edm=((_ed.getMonth() + 1) <10) ? ('0'+ (_ed.getMonth() + 1)):(_ed.getMonth() + 1); 
						search_enddate=_edd+"-" + _edm+"-"+ takeYear(_ed);
					}
					break;
			}
		}
		
	}
	if(!bureauDefined) {search_bureau="sos";}
	return res;
}

function udskrivDataSearch(prefix )
{
	var count=getTotal(prefix); var search=document.getElementById(prefix + "_submit"); var res=document.getElementById(prefix + "_result");
	res.innerHTML="<b>"+count+"</b>";
	if(count>0)
	{
		search.disabled=false;
	}
	else 
	{
		search.disabled=true;
		if(count < 0)
		{
			res.innerHTML="<b>+ERROR</b>";
		}
	}
	initRules(prefix);
}

function myPosition (elementId)
{
	var y=YAHOO.util.Dom.getY(elementId); var x= this.Left=YAHOO.util.Dom.getX(elementId); 
	var elementPos = new elementPosition (x, y); return elementPos;
}
function elementPosition(x,y) {	this.Left=x; this.Top =y;}	
function getTotal(prefix)
{
	return parseInt(document.getElementById(prefix + "_SearchTotalInput").value);
}
function setTotal(prefix)
{
	document.getElementById( prefix + "_SearchTotalInput").value=reSearchTotal;
}

function removeChildNodesFromElement(obj)
{
	if (navigator.userAgent.toLowerCase().indexOf("safari") != -1){
		while (obj.childNodes.length > 0)
		{
			var child = obj.childNodes[0]; 
			var parentNode = child.parentNode;
			parentNode.removeChild(child);	   
		}
	}	
}	

//subregion kald med area 
function imageMapClickSub(area, prefix)
{
	imageMapOut(area);
	var areaObj=GetArea(area.id);
	subMapDivHandler(areaObj);
}

function subMapDivHandler(areaObj) {

	var mapMainDiv = GetObjByName('mapMainDiv');
	var newMapDiv = GetObjByName('div' +areaObj.Id);
	
	if(!newMapDiv)
	{
		newMapDiv = document.createElement('div');
		newMapDiv.id = 'div' + areaObj.Id;
		newMapDiv.innerHTML = '<img alt="'+ areaObj.Name + '" title="'+ areaObj.Name  +'" border="0" src="' + areaObj.ImgSrc  +'"  />';
		newMapDiv.style.visibility="hidden";
		newMapDiv.style.position = "absolute"; 
		
		mapMainDiv.appendChild(newMapDiv);
		  
		//newMapDiv.style.left= parentPosition.x + 'px';
		//newMapDiv.style.top= parentPosition.y +'px';
		addSubRegionChosenValue(usemapPrefix,areaObj.Id);
		newMapDiv.style.visibility="visible";
	}
	else
	{		
			if(newMapDiv.style.visibility=="visible")
			{
				  newMapDiv.style.visibility="hidden"; 
				  removeSubRegionChosenValue(usemapPrefix, areaObj.Id);
			}
			else
			{
				addSubRegionChosenValue(usemapPrefix, areaObj.Id);
				newMapDiv.style.visibility="visible";
			}
	}
	SelectSubRegionFromHandler(usemapPrefix);
}

var Areas = new Array();

function Area (id, parentid,  name, imgsrc, type, coords, shape)
{
	this.Id=id;
	this.ParentId=parentid;
	this.Name= name;
	this.ImgSrc=imgsrc;
	this.Type=type;
	this.Coords=coords;
	this.Shape=shape;
}

function GetArea(id)
{
	var low = 0;    var high = Areas.length-1;       
	while (low <= high) 
	{       
		var mid = parseInt( (low + high) / 2);           
		if (Areas[mid].Id > id)  {high = mid - 1;}
        else if (Areas[mid].Id < id)  {low = mid + 1;}           
		else  {return Areas[mid]; }       
	}
	return null; // not found   
}

function GetAreaChildren(id)
{
	var areas = new Array();
	if(Areas.length >0)
	{
	 	for(var i=0;i < Areas.length; i++)
	 	{
	 		if(Areas[i].ParentId==id)
	 		{
	 			areas[areas.length]=Areas[i];
	 		}
	 	}
	} 
	return areas;
}

   
function CreateNewUseMap(areaObj, prefix)
{
	var mainUseMap = document.getElementById("mainUseMap"); 
	if(mainUseMap)
	{
		removeChildNodesFromElement(mainUseMap);
		//reuse
		var oldCount = mainUseMap.childNodes.length;	var reCount = 0;
		
		var areas=GetAreaChildren(areaObj.Id)
		if(areas.length>0)
		{
			for(var i=0;i< 	areas.length;i++)
			{	
				var attach=true;	var node=null; var areaChild= areas[i];
				
				if(i < oldCount)
				{
					node= mainUseMap.childNodes[reCount];
					node.setAttribute("title", areaChild.Name);
					node.setAttribute("alt", areaChild.Name);
					reCount++;
					attach=false;
				}
				else
				{
					node = document.createElement("area"); 	
					node.setAttribute("href", "#");    		
					node.setAttribute("title", areaChild.Name);
					node.setAttribute("alt", areaChild.Name);
				}
				areaChild.Shape=="rect" ? node.setAttribute("shape", "rect") : node.setAttribute("shape", "poly"); ; 
				node.setAttribute("id", "" + areaChild.Id);    	
				node.setAttribute("coords", areaChild.Coords);     
				
				node.onmouseover = function(){
					imageMapOver(this); 
				}; 
				node.onmouseout = function(){
  					imageMapOut(this); 
				};    
	  
				//region
				if(areaChild.Type==1)	
					node.onclick = function(){
  						imageMapClick(this); 
  						return false;
				}; 
				//subregion
				if(areaChild.Type>1)	
					node.onclick = function(){
  						imageMapClickSub(this); 
  						return false;
				}; 
				
				if(attach)
				{
					node.onfocus = function(){
					if (document.all){
						if (this.blur)
						this.blur();
						}
					};
					mainUseMap.appendChild(node);
				}
			}
		}
		while (reCount < oldCount)
		{
			mainUseMap.childNodes[reCount].shape == "rect" ? mainUseMap.childNodes[reCount].setAttribute("coords", "0,0,0,0"): mainUseMap.childNodes[reCount].setAttribute("coords", "0,0,0,0,0,0");
			reCount++;
		}	
	}
	
}
function InitMapData()
{
	var areaId=0;
	if(usemapPrefix)
	{
		var regionID =getValueFromConfigData("region", usemapPrefix);
		//chek for land || region
		regionID != null ? areaId = regionID : areaId =0;
		
		if(regionID==null)
		{
			var cData=getDaySearchCookie(searchcookie);
			if(cData!=null)
			{
				regionID = getDaySearchCookieValue(cData, "region");
				regionID != null ? areaId = regionID : areaId =0;
			}
		}
		
		var areaObj = GetArea (areaId);
		InitMap(areaObj);
		
	}
}

//pre [Type = [0 - 1]]
function InitMap(areaObj)
{
	if(areaObj)
	{
		CreateNewUseMap(areaObj);
		setTheMapBgrImageSrc(areaObj);
		if(areaObj.Type==1)
		{
			ShowAllChosenSubRegion(usemapPrefix);
		}
		else
		{
			setSubRegionChosenValue(usemapPrefix, "");
		}
		ShowDivShowCountry(areaObj.Id); //hele landet div
	}
}
function ShowDivShowCountry(id)
{
	var   divShowCountry = GetObjByName('divShowCountry');	var   divClickMap = GetObjByName('divClickMap');
	if(divShowCountry )
	{
		if(id > 0) {divShowCountry.style.display = "block";if(divClickMap){divClickMap.style.display = "none";}		}
		else if(id==0){ divShowCountry.style.display = "none";if(divClickMap){divClickMap.style.display = "block";} }
	}
}
function chooseCountry()
{
	var objRegion=GetObjByName(usemapPrefix + "_region");
	if(objRegion)
	{
		chooseSelectOneValue(objRegion , 0);RegionOnChange(objRegion);
	}
}
//region
function imageMapClick(area, prefix)
{
	imageMapOut(area);
	var objRegion=GetObjByName(usemapPrefix + "_region");
	chooseSelectOneValue(objRegion , area.id);
	RegionOnChange(objRegion);
}
function setTheMapBgrImageSrc(areaObj)
{
	var imgTheMap = document.getElementById("theMap"); 
	if(imgTheMap)	
	{
		imgTheMap.src= areaObj.ImgSrc;		
	}
}

function imageMapOver(area)
{
	var areaObj=GetArea(area.id);
	if(areaObj)
	{
		var mapOver = document.getElementById("mapOver"); 
		if(mapOver )
		{
			if(areaObj.Type ==1)//region
			{
				mapOver.src= areaObj.ImgSrc.replace(/\.gif/g, "_up.gif");		
			}
			else if (areaObj.Type==2) //subRegion
			{
				mapOver.src= areaObj.ImgSrc ;
			}
		}
	}
}
function imageMapOut(areaObj)
{
	var mapOver = document.getElementById("mapOver"); 	if(mapOver)	{mapOver.src= "/images/nlajax/dot.gif"	}
}