
addEvent(document, "click", function(evt) {
	if (clickedOutsideCalendar(evt)) {
		hideCalendar();
	}
});




var DT_OK = 0;
var DT_ERR_BEFORETODAY = -1;
var DT_ERR_TODAY = -2;
var DT_ERR_TOOFAR = -3;
var DT_ERR_TOOCLOSE = -4;
var DT_ERR_NOTLEGAL = -5;
var DT_ERR_AFTERMAX = -6;
var DT_ERR_NOTVACANT = -7;
var DT_ERR_NOTPOSSIBLE = -8;


var DT_MON = 1;
var DT_TUE = 2;
var DT_WED = 3;
var DT_THU = 4;
var DT_FRI = 5;
var DT_SAT = 6;
var DT_SUN = 0;

var DT_JAN = 1;
var DT_FEB = 2;
var DT_MAR = 3;
var DT_APR = 4;
var DT_MAY = 5;
var DT_JUN = 6;
var DT_JUL = 7;
var DT_AUG = 8;
var DT_SEP = 9;
var DT_OCT = 10;
var DT_NOV = 11;
var DT_DEC = 12;


var DT_MIN_DATE = str2date("2010-09-09");
var DT_MAX_DATE = str2date("2012-09-09");
var DT_MIN_YEAR = 2010;
var DT_MAX_YEAR = 2012;
var DT_OPTION = str2date("2011-01-09");

var FR_CACHE = false;
var FR_HISTORY = true;


var FR_LANGUAGE = "DK";
var FR_CURRENCYCODE = "DKK";


var FR_PETFEES = [];


function ferieringDuration(days, minDiff, maxDiff, legalDaysOnly) {
	this.days = days;
	this.minDiff = minDiff;
	this.maxDiff = maxDiff;
	this.legalDaysOnly = legalDaysOnly;
}

var legalDays = [0,1,2,3,4,5,6];

var legalDurations = [new ferieringDuration(3, 1, 100, false), new ferieringDuration(4, 1, 100, false), new ferieringDuration(5, 1, 100, false), new ferieringDuration(6, 1, 100, false), new ferieringDuration(7, 1, 0, true), new ferieringDuration(14, 1, 0, true), new ferieringDuration(21, 1, 0, true), new ferieringDuration(28, 1, 0, true), new ferieringDuration(35, 1, 0, true)];


var legalDates = [];

var illegalDates = [];


var areaMapImgs = [];
var defaultMapSrc = "/site/images/map.gif";
var currentMapSrc = defaultMapSrc;
function addAreaMapImg(key, src, w, h) {
	areaMapImgs[key] = new Image(w, h);
	areaMapImgs[key].src = src;
}
addAreaMapImg("ahl-strand", "/site/images/map-ahl-strand.gif", 180, 210);
addAreaMapImg("begtrup-vig-strand", "/site/images/map-begtrup-vig-strand.gif", 180, 210);
addAreaMapImg("boeslum-draaby-strand", "/site/images/map-boeslum-draaby-strand.gif", 180, 210);
addAreaMapImg("boeslum-strand", "/site/images/map-boeslum-strand.gif", 180, 210);
addAreaMapImg("borup-helgenaes", "/site/images/map-borup-helgenaes.gif", 180, 210);
addAreaMapImg("boennerup-strand", "/site/images/map-boennerup-strand.gif", 180, 210);
addAreaMapImg("dejret-klit", "/site/images/map-dejret-klit.gif", 180, 210);
addAreaMapImg("ebeltoft", "/site/images/map-ebeltoft.gif", 180, 210);
addAreaMapImg("egsmark-strand", "/site/images/map-egsmark-strand.gif", 180, 210);
addAreaMapImg("elsegaarde-strand", "/site/images/map-elsegaarde-strand.gif", 180, 210);
addAreaMapImg("fejrup-helgenaes", "/site/images/map-fejrup-helgenaes.gif", 180, 210);
addAreaMapImg("femmoeller-bakker", "/site/images/map-femmoeller-bakker.gif", 180, 210);
addAreaMapImg("femmoeller-strand", "/site/images/map-femmoeller-strand.gif", 180, 210);
addAreaMapImg("fjellerup-strand", "/site/images/map-fjellerup-strand.gif", 180, 210);
addAreaMapImg("fuglslev", "/site/images/map-fuglslev.gif", 180, 210);
addAreaMapImg("fuglsoe", "/site/images/map-fuglsoe.gif", 180, 210);
addAreaMapImg("fuglsoe-vig-dragsmur", "/site/images/map-fuglsoe-vig-dragsmur.gif", 180, 210);
addAreaMapImg("foelle-strand", "/site/images/map-foelle-strand.gif", 180, 210);
addAreaMapImg("gjerrild-nordstrand", "/site/images/map-gjerrild-nordstrand.gif", 180, 210);
addAreaMapImg("grenaa-strand", "/site/images/map-grenaa-strand.gif", 180, 210);
addAreaMapImg("handrup-bakker-strand", "/site/images/map-handrup-bakker-strand.gif", 180, 210);
addAreaMapImg("hegedal", "/site/images/blank.gif", 180, 210);
addAreaMapImg("holme-strand", "/site/images/map-holme-strand.gif", 180, 210);
addAreaMapImg("knebel", "/site/images/map-knebel.gif", 180, 210);
addAreaMapImg("kongsgaarde-helgenaes", "/site/images/map-kongsgaarde-helgenaes.gif", 180, 210);
addAreaMapImg("krakaer", "/site/images/map-krakaer.gif", 180, 210);
addAreaMapImg("lyngsbaek-strand", "/site/images/map-lyngsbaek-strand.gif", 180, 210);
addAreaMapImg("laerkelunden-oeer", "/site/images/map-laerkelunden-oeer.gif", 180, 210);
addAreaMapImg("sibirien-esby", "/site/images/map-sibirien-esby.gif", 180, 210);
addAreaMapImg("skovgaarde-ahl-strand", "/site/images/map-skovgaarde-ahl-strand.gif", 180, 210);
addAreaMapImg("skoedshoved-strand", "/site/images/map-skoedshoved-strand.gif", 180, 210);
addAreaMapImg("sletterhage-helgenaes", "/site/images/map-sletterhage-helgenaes.gif", 180, 210);
addAreaMapImg("stoedov-bakker-gl-kirkebjerg", "/site/images/map-stoedov-bakker-gl-kirkebjerg.gif", 180, 210);
addAreaMapImg("tirstrup", "/site/images/blank.gif", 180, 210);
addAreaMapImg("thorsager", "/site/images/map-thorsager.gif", 180, 210);
addAreaMapImg("tved-torup", "/site/images/map-tved-torup.gif", 180, 210);
addAreaMapImg("vistofte-fuglsoe", "/site/images/map-vistofte-fuglsoe.gif", 180, 210);
addAreaMapImg("vrinners", "/site/images/map-vrinners.gif", 180, 210);
addAreaMapImg("vaengesoe-helgenaes", "/site/images/map-vaengesoe-helgenaes.gif", 180, 210);
addAreaMapImg("oeer-strand", "/site/images/map-oeer-strand.gif", 180, 210);

function toggleAreaMap(id) {
	var objMap = document.getElementById("areaMap");
	if (objMap != null) {
		if (areaMapImgs[id] == null) {
			id = "";
		}
		if (id != "") {
			objMap.src = areaMapImgs[id].src;
		}
		else {
			objMap.src = defaultMapSrc;
		}
	}
}

function initAreaMap(id) {
	var objMap = document.getElementById("areaMap");
	if (objMap != null) {
		oImg = areaMapImgs[id];
		if (oImg != null) {
			objMap.src = oImg.src;
		}
		else {
			objMap.src = defaultMapSrc;
		}
		currentMapSrc = objMap.src;
	}
}

function resetAreaMap() {
	var objMap = document.getElementById("areaMap");
	if (objMap != null) {
		objMap.src = currentMapSrc;
	}
}

function setArea(id) {
	if (ua["dom"]) {
		var bSearch = true;
		var objForm = document.forms["ferieringSearch"];
		if (objForm == null) {
			bSearch = false;
			objForm = document.forms["ferieringSimpleSearch"];
		}
		if (objForm != null) {
			if (areaMapImgs[id] == null) {
				id = ""
			}

			if (id != "") {
				currentMapSrc = areaMapImgs[id].src;
				initField(objForm, "area", id);
			}
			else {
				currentMapSrc = defaultMapSrc;
				resetAreaMap();
			}
		
			if (bSearch) {
				var objQS = document.getElementById("quickSearchResults");
				if (objQS != null) {
					doFerieringQuickSearch();
				}
				else {
					doFerieringSearch(true);
				}
			}
		}
	}
	return false;
}





requestHandler = function() {
	this.items = [];
}


requestHandler.prototype.add = function(key, oXMLHttpRequest, oWaitObj) {
	this.items[key] = { xmlHttpRequest : oXMLHttpRequest, waitObj : oWaitObj };
}


requestHandler.prototype.remove = function(key) {
	var item = this.items[key];
	if (item != null) {
		if (item.xmlHttpRequest != null) {
			item.xmlHttpRequest.abort();
		}
		if (item.waitObj != null) {
			item.waitObj.cancel();
		}
	}
}


var myRequests = new requestHandler();



function StringBuffer() { 
   this.buffer = []; 
 } 

 StringBuffer.prototype.append = function append(string) { 
   this.buffer.push(string); 
   return this; 
 }; 

 StringBuffer.prototype.toString = function toString() { 
   return this.buffer.join(""); 
 }; 



/**
* Returns the week number for this date. dowOffset is the day of week the week
* "starts" on for your locale - it can be from 0 to 6. If dowOffset is 1 (Monday),
* the week returned is the ISO 8601 week number.
* @param int dowOffset
* @return int
*/
Date.prototype.getWeek = function (dowOffset) {
/*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.meanfreepath.com */

	dowOffset = typeof(dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero
	var newYear = new Date(this.getFullYear(),0,1);
	var day = newYear.getDay() - dowOffset; //the day of week the year begins on
	day = (day >= 0 ? day : day + 7);
	var daynum = Math.floor((this.getTime() - newYear.getTime() -
	(this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1;
	var weeknum;
	//if the year starts before the middle of a week
	if(day < 4) {
		weeknum = Math.floor((daynum+day-1)/7) + 1;
		if(weeknum > 52) {
			nYear = new Date(this.getFullYear() + 1,0,1);
			nday = nYear.getDay() - dowOffset;
			nday = nday >= 0 ? nday : nday + 7;
			/*if the next year starts before the middle of
			the week, it is week #1 of that year*/
			weeknum = nday < 4 ? 1 : 53;
		}
	}
	else {
		weeknum = Math.floor((daynum+day-1)/7);
	}
	return weeknum;
};




/** Returns the number of day in the year. */
Date.prototype.getDayOfYear = function() {
	var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
	var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
	var time = now - then;
	return Math.floor(time / Date.DAY);
};

/** Returns the number of the week in year, as defined in ISO 8601. */
Date.prototype.getWeekNumber = function() {
	var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
	var DoW = d.getDay();
	d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu
	var ms = d.valueOf(); // GMT
	d.setMonth(0);
	d.setDate(4); // Thu in Week 1
	return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
};







function isLegalDay(d) {
	var res = false;
	for (var i = 0; i < legalDays.length; i++) {
		if (legalDays[i] == d) {
			res = true;
			break;
		}
	}
	return res;
}




function isLegalDate(dt) {
	var res = false;

	if (legalDates.length == 0) {
		res = true;
	}
	else {
		for (var i = 0; i < legalDates.length; i++) {
			if (date2str(legalDates[i]) == date2str(dt)) {
				res = true;
				break;
			}
		}
	}

	for (var i = 0; i < illegalDates.length; i++) {
		if (date2str(illegalDates[i]) == date2str(dt)) {
			res = false;
			break;
		}
	}

	return res;
}



function setSRView(v) {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		objForm.view.value = v;
		toggleSRViewTab(v);
		doFerieringSearch(true);
	}
	return false;
}


function toggleSRViewTab(v) {
	var objDiv = document.getElementById("searchResultsTabs");
	var obj = document.getElementById("srtab"+ v);

	if (obj != null) {
		var oLI = obj.parentNode;
		var oUL = oLI.parentNode;

		addClassName(oLI, "current");

		var aLI = oUL.getElementsByTagName("LI");
		for (var i = 0; i < aLI.length; i++) {
			if (aLI[i] != oLI) {
				removeClassName(aLI[i], "current");
			}
		}
	}
}



function getDayName(w) {
	switch (w) {
		case DT_MON :
			return "mandag";
			break;
		case DT_TUE :
			return "tirsdag";
			break;
		case DT_WED :
			return "onsdag";
			break;
		case DT_THU :
			return "torsdag";
			break;
		case DT_FRI :
			return "fredag";
			break;
		case DT_SAT :
			return "lørdag";
			break;
		case DT_SUN :
			return "søndag";
			break;
	}
}


function getMonthName(m) {
	switch (m) {
		case DT_JAN :
			return "januar";
			break;
		case DT_FEB :
			return "februar";
			break;
		case DT_MAR :
			return "Marts";
			break;
		case DT_APR : 
			return "april";
			break;
		case DT_MAY :
			return "maj";
			break;
		case DT_JUN :
			return "juni";
			break;
		case DT_JUL :
			return "juli";
			break;
		case DT_AUG :
			return "august";
			break;
		case DT_SEP :
			return "september";
			break;
		case DT_OCT :
			return "oktober";
			break;
		case DT_NOV :
			return "november";
			break;
		case DT_DEC :
			return "december";
			break;
	}
}


function getDTWarning(dtValidation) {
	var str = "";

	switch (dtValidation.state) {
		case DT_OK :
			break;

		case DT_ERR_BEFORETODAY :
			str = "Vælg venligst ankomstdato efter dags dato."; 
			break;

		case DT_ERR_TODAY :
			str = "Du kan ikke vælge dags dato som ankomstdato."; 
			break;
		
		case DT_ERR_TOOFAR :
			
			str = "Du kan ikke bestille ferier af <fragment:days/> dages varighed med ankomstdato senere end <fragment:maxDiff/> dage efter dags dato.".replace("<fragment:days\/>", dtValidation.d.days).replace("<fragment:maxDiff\/>", dtValidation.d.maxDiff);
			break;
		
		case DT_ERR_TOOCLOSE :
			
			str = "Ferier af <fragment:days/> varighed skal bestilles mindst <fragment:minDiff/> dage før ankomstdato.".replace("<fragment:days\/>", dtValidation.d.days).replace("<fragment:minDiff\/>", dtValidation.d.minDiff);
			break;
		
		case DT_ERR_NOTPOSSIBLE :
			
		case DT_ERR_NOTLEGAL :

			var dstr = "";
			for (var i = 0; i < legalDays.length; i++) {
				dstr += (dstr != "" ? " eller " : "") + getDayName(legalDays[i]);
			}
		
			str = "Du kan kun vælge <fragment:d/> som ankomstdag.".replace("<fragment:d\/>", dstr);
			break;

		case DT_ERR_AFTERMAX :
			
			str = "Du kan ikke bestille feriehuse med ankomstdato efter <fragment:dt/>.".replace("<fragment:dt\/>", date2str(DT_MAX_DATE));
			break;

		case DT_ERR_NOTVACANT :
			str = "Huset er ikke ledigt denne dato."; 
			break;
	}
	return str;
}


function toggleDTWarning(dtValidation) {
	var obj = document.getElementById("dtWarning");
	if (obj != null) {
		var str = getDTWarning(dtValidation);
		obj.innerHTML = "<div id=\"dtWarningContent\">"+ str +"</div>"; 
		obj.style.display = (dtValidation.state == 0 ? "none" : "block");
	}
}



function validateSearchDate(objForm, dtStr) {
	if (objForm != null) {
		var dtToday = new Date();
		var dtStart = str2date(dtStr)
		var duration = parseInt(objForm.duration.value, 10);
		var dDiff = DateDiff("d", dtToday, dtStart);
		var w = DatePart("w", dtStart);

		var wdDiff = 0
		var dtLegalStart = dtStart;
		var state = DT_OK;

		
		var d = null;
		for (var i = 0; i < legalDurations.length; i++) {
			if (legalDurations[i].days == duration) {
				d = legalDurations[i];
			}
		}

		d = (d == null ? legalDurations[0] : d);

		

		if (d != null) {
			
			if (dDiff < 0) {
				state = DT_ERR_BEFORETODAY;
				dtLegalStart = dtToday;
			}
			
			else if (dDiff == 0) {
				state = DT_ERR_TODAY;
			}

			
			if (!((dDiff >= d.minDiff) && ((dDiff <= d.maxDiff) || (d.maxDiff == 0)))) {
				if ((dDiff >= d.maxDiff) && (d.maxDiff > 0)) {
					
					dtLegalStart = DateAdd("d", d.maxDiff, Date());
					state = (state == 0 ? DT_ERR_TOOFAR : state);
				}
				else {
					
					dtLegalStart = DateAdd("d", d.minDiff, Date());
					if (dDiff < 0) {

					}
					else if ((dDiff == 0) && (d.minDiff > 0)) {

					}
					else {
						state = (state == 0 ? DT_ERR_TOOCLOSE : state);
					}
				}
			}

			
			if (d.legalDaysOnly) {
				w = DatePart("w", dtLegalStart);
				if (!isLegalDay(w)) {
					state = (state == 0 ? DT_ERR_NOTLEGAL : state);

					
					var dOK = false;
					while (!dOK) {
						for (var i = 0; i < legalDays.length; i++) {
							if (DatePart("w", dtLegalStart) == legalDays[i]) {
								dOK = true;
								break;
							}
						}
						if (!dOK) {
							dtLegalStart = DateAdd("d", 1, dtLegalStart);						
						}
					}

				}
			}
			if (!isLegalDate(dtLegalStart)) {
				state = DT_ERR_NOTLEGAL;			
			}

		}

		return { state: state, dt : dtStart, vdt : dtLegalStart, d : d}
	}	
}

function validateHouseDate(dtStr) {
	var objForm = document.forms["ferieringHouse"];
	if (objForm != null) {
		var dtToday = new Date();
		var dtStart = str2date(dtStr);
		var dtLegalStart = null;
		var state = DT_ERR_NOTVACANT;
		var duration = parseInt(objForm.duration.value, 10);

		
		var d = null;
		for (var i = 0; i < legalDurations.length; i++) {
			if (legalDurations[i].days == duration) {
				d = legalDurations[i];
			}
		}

		d = (d == null ? legalDurations[0] : d);


		var dDiff = DateDiff("d", dtToday, dtStart);
		if (dDiff < 0) {
			state = DT_ERR_BEFORETODAY;
		}
		else if (dDiff == 0) {
			state = DT_ERR_TODAY;
		}
		else {
			if (legalDates.length > 0) {
				for (var i = 0; i < legalDates.length; i++) {
					if (legalDates[i] == date2str(dtStart)) {
						dtLegalStart = dtStart;
						state = DT_OK;
					}
				}
			}
		}

		if (state != DT_OK) {
			if (legalDates.length > 0) {
				dtLegalStart = str2date(legalDates[0]);
			}
		}
		
		return { state : state, dt: dtStart, vdt : dtLegalStart, d : d}

		
	}
}


function mydebug(s) {
	var objDebug = document.getElementById("mydebug");
	if (objDebug != null) {
		objDebug.value = s + "\n---\n"+ objDebug.value;
	}
}


function doFerieringSearch(bFirstPage) {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		var dtValidation = validateSearchDate(objForm, getDTStr(objForm));
		toggleDTWarning(dtValidation);
		if (dtValidation.state == DT_OK) {
			
			if (FR_HISTORY) {
				updateFerieringSearchHash();
			}
			
			checkFerieringSearch(bFirstPage);		
		}
	}
}

function doFerieringQuickSearch() {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		var dtValidation = validateSearchDate(objForm, getDTStr(objForm));
		toggleDTWarning(dtValidation);
		if (dtValidation.state == DT_OK) {
			checkFerieringQuickSearch();
		}
	}
}

function doSimpleSearch() {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSimpleSearch"];
		checkSimpleSearch(objForm);
	}
	return false;
}


function goToSearchResults() {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		var dtValidation = validateSearchDate(objForm, getDTStr(objForm));
		toggleDTWarning(dtValidation);
		if (dtValidation.state == DT_OK) {
			var s = generateSearchUrl(1);
			window.location = s;
		}
	}
	return false;
}

function getDTStr(objForm) {
	return objForm.yearmonth.value +"-"+ objForm.day.value;
}


function toggleFacility(fname, b) {
	var oRLI = document.getElementById("rfac_"+ fname);
	var oALI = document.getElementById("afac_"+ fname);
	if ((oRLI != null) && (oALI != null)) {
		oRLI.style.display = (b ? "block" : "none");
		oALI.style.display = (b ? "none" : "block");
	}
}

function addFacility(obj) {
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		var oALI = obj.parentNode;
		
		var rx = /^afac_(.+)$/;

		var oRLI = document.getElementById(oALI.id.replace(rx, "rfac_$1"))
		if (oRLI != null) {
			objForm.elements.namedItem(oALI.id.replace(rx, "fac_$1")).value = "1";

			oRLI.style.display = "block";
			oALI.style.display = "none";

			
			doFerieringSearch(true);
			

		}
	}
	return false;
}

function remFacility(obj) {
	var objForm = document.forms["ferieringSearch"];

	if (objForm != null) {
		var oRLI = obj.parentNode;
		
		var rx = /^rfac_(.+)$/;

		var oALI = document.getElementById(oRLI.id.replace(rx, "afac_$1"))
		if (oRLI != null) {
			objForm.elements.namedItem(oRLI.id.replace(rx, "fac_$1")).value = "0";

			oALI.style.display = "block";
			oRLI.style.display = "none";

			
			doFerieringSearch(true);
			

		}
	}
	return false;
}



function decPage() {
	
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		var p = parseInt(objForm.page.value, 10);
		p--;
		if (p < 1) {
			p = 1;		
		}
		objForm.page.value = p;

		doFerieringSearch(false);
	}
	return false;
	
}

function incPage() {
	
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		var p = parseInt(objForm.page.value, 10);

		p++;
		objForm.page.value = p;

		doFerieringSearch(false);
	}
	return false;
	
}

function setPage(p) {
	
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		objForm.page.value = p;
		doFerieringSearch(false);
	}
	return false;
	
}

function decQSPage() {
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		var p = parseInt(objForm.page.value, 10);
		p--;
		if (p < 1) {
			p = 1;		
		}
		objForm.page.value = p;
		checkFerieringQuickSearch(true);
	}
	return false;
}

function incQSPage() {
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		var p = parseInt(objForm.page.value, 10);
		p++;
		objForm.page.value = p;
		checkFerieringQuickSearch(true);
	}
	return false;
}


function setPagingInformation(totalItems, itemCount, page, pageSize) {

	var oPO = document.getElementById("searchResultsPagingOptions");

	var oTP = document.getElementById("searchResultsTopPager");
	var oTC = document.getElementById("searchResultsTopCount");
	var oTL = document.getElementById("searchResultsTopPagerLinks");

	var oBP = document.getElementById("searchResultsBotPager");
	var oBC = document.getElementById("searchResultsBotCount");
	var oBL = document.getElementById("searchResultsBotPagerLinks");

	oPO.style.visibility = (pageSize > 0 ? "visible" : "hidden");

	if (totalItems > 0) {
		oTC.innerHTML = totalItems +(totalItems > 1 ? " feriehuse fundet" : " feriehus fundet");
		oBC.innerHTML = totalItems +(totalItems > 1 ? " feriehuse fundet" : " feriehus fundet");
	

		if (pageSize > 0) {
			if (totalItems != itemCount) {
				oTL.innerHTML = "";
				oBL.innerHTML = "";


				var str = new StringBuffer();

				if (page > 1) {
					str.append("<li class=\"prev\"><a href=\""+ generateSearchUrl(page - 1) +"\" onclick=\"return decPage()\">&lt;&lt;</a></li>");
				} 

				for (var i = 1; i <= Math.ceil(totalItems / pageSize); i++) {
					str.append("<li"+ (i == page ? " class=\"current\"" : "") +"><a href=\""+ generateSearchUrl(i) +"\" onclick=\"return setPage("+ i +")\">"+ i +"</a></li>");
				}

				if (page < Math.ceil(totalItems / pageSize)) {
					str.append("<li class=\"next\"><a href=\""+ generateSearchUrl(page + 1) +"\" onclick=\"return incPage()\">&gt;&gt;</a></li>");
				}

				oTL.innerHTML = str;
				oBL.innerHTML = str;
				
			}
			else {
				oTL.innerHTML = "";
				oBL.innerHTML = "";
			}
		}
		else {
			oTL.innerHTML = "";
			oBL.innerHTML = "";
		}


		
		oTP.style.visibility = "visible";
		oBP.style.visibility = "visible";

	}
	else {
		msg = "Din søgning matchede ingen feriehuse."; 

		oTP.style.visibility = "hidden";
		oBP.style.visibility = "hidden";

		if (pageSize > 0) {
			displayFerieringSearchError(msg);
		}
		else {
			alert(msg);		
		}
	}
}


function displayFerieringSearchError(msg) {
	var oIL = document.getElementById("searchResultsList");
	var oTP = document.getElementById("searchResultsTopPager");
	var oBP = document.getElementById("searchResultsBotPager");

	if (oIL) {
		oIL.innerHTML = "<div class=\"searchResultsError\">"+ msg +"</div>";
	}

	if (oTP) {
		oTP.style.visibility = "hidden";
		oBP.style.visibility = "hidden";
	}
}


function formatPrice(p, a, c) {
	var kiloSeparator = ".";
	var decimalSeparator = ",";

	var s = "";

	p = parseFloat(p);
	if (p < 0) {
		s = "-";
		p = -p;
	}
	var pRes = p.toFixed(a);

	var pInt = "";
	var pDec = "";

	if (a > 0) {
		var rx = /(\d+)\.(\d+)/i;	
		pRes = pRes + "";
		pInt = pRes.replace(rx, "$1");
		pDec = pRes.replace(rx, "$2");
	}
	else {
		pInt = pRes + ""
	}

	var px = "";
	var j = 1;
	for (var i = pInt.length - 1; i >= 0; i--) {
		px = ((j % 3) == 0 ? kiloSeparator : "") + pInt.substr(i, 1) + px;
		j++;
	}
	if (px.substring(0,1) == kiloSeparator) {
		px = px.substring(1, px.length);
	}

	if (a > 0) {
		px = px + decimalSeparator + pDec;
	}

	return s + px +" "+ c;
}


function generateSimpleSearchUrl() {
	var objForm = document.forms["ferieringSimpleSearch"];
	if (objForm != null) {
		var s = "/sommerhuse/";
		s += (objForm.area.value != "" ? objForm.area.value +"/" : "");
		s += objForm.duration.value +"/";
		s += objForm.yearmonth.value +"-"+ objForm.day.value +"/";
		s += "index1.htm";
		s += "?visitors="+ objForm.visitors.value;

		return s;
	}
}

function generateSearchUrl(p) {
	var s = "#";
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		s = "/"+ "sommerhuse"+ "/";
		s += (objForm.area.value != "" ? objForm.area.value +"/" : "");
		s += objForm.duration.value +"/";
		s += objForm.yearmonth.value +"-"+ objForm.day.value;
		s += "/index" + (p > 0 ? p : objForm.page.value) +".htm";
		s += "?visitors=" + objForm.visitors.value;
		s += (objForm.pets.value != "0" ? "&pets="+ objForm.pets.value : "");
		s += "&bedrooms="+ objForm.bedrooms.value;
		if (objForm.orderby != null) {
			s += (objForm.orderby.value != "" ? "&orderby="+ objForm.orderby.value : "");
		}
		if (objForm.view != null) {
			if (objForm.view.type == "checkbox") {
				s += (objForm.view.checked ? "&view=map" : "");
			}
			else {
				s += "&view="+ objForm.view.value;
			}
		}
		s += (objForm.mode.value != "" ? "&mode="+ objForm.mode.value : "");
		s += (objForm.pagesize != null ? "&pagesize="+ objForm.pagesize.value : "");

		if (objForm.aproxydate != null) {
			s += (objForm.aproxydate.checked ? "" : "&aproxydate=0");
		}
		

		var facRx = /^fac_.+$/;
		for (var i = 0; i < objForm.elements.length; i++) {
			var objItem = objForm.elements.item(i);
			if (objItem.name.match(facRx)) {

				switch (objItem.type) {
					case "hidden" :
							if (objItem.value != "0") {
								s += "&"+ objItem.name +"=1";
							}
						break;
					case "checkbox" :
						if (objItem.checked) {
							s += "&"+ objItem.name +"=1";
						}
						break;
					case "select" :
					case "select-one" :
					case "select-multiple" :
						if (objItem.value != "") {
							s += "&"+ objItem.name +"="+ objItem.value;
						}
						break;
				}

			}
		}
	}

	return s;
}


function generateHouseUrl(objHouseNode) {
	var oXML = new XMLObject();

	var hId = oXML.getText(objHouseNode.selectSingleNode("@id"));
	var hArea = oXML.getText(objHouseNode.selectSingleNode("area/@url"));
	var hArr = oXML.getText(objHouseNode.selectSingleNode("period/@arrival"));


	var s = "#";
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		s = "/" + "sommerhuse" +"/";
		s += (hArea != "" ? hArea +"/" : "");
		s += objForm.duration.value +"/";
		s += hArr;
		s += "/"+ "sommerhus" +"-"+ hId +".htm";
		s += "?visitors=" + objForm.visitors.value;
		s += (objForm.pets.value != "0" ? "&pets="+ objForm.pets.value : "");

		if (objForm.aproxydate != null) {
			s+= (objForm.aproxydate.checked ? "" : "&aproxydate=0");
		}

	}
	return s;
}

function parseFerieringQuickSearchData(oXML) {
	var totalItems = parseInt(oXML.getText(oXML.selectSingleNode("searchxml/@totalItems")), 10);
	var firstItem = parseInt(oXML.getText(oXML.selectSingleNode("searchxml/@firstItem")), 10);
	var itemCount = parseInt(oXML.getText(oXML.selectSingleNode("searchxml/@itemCount")), 10);

	var objForm = document.forms["ferieringSearch"];
	var page = parseInt(objForm.page.value, 10);
	var pageSize = 6;

	var objPrev = document.getElementById("qsPrev");
	var objNext = document.getElementById("qsNext");
	var objTotal = document.getElementById("qsTotal");
	var objPage = document.getElementById("qsPage");

	var objData = document.getElementById("quickSearchResultsData");
	var objImg = document.getElementById("quickSearchImg");




	if (totalItems > 0) {
		var maxPerRow = 3;


		if (page > 1) {
			objPrev.href = generateSearchUrl(page - 1)
			objPrev.style.visibility = "visible";		
		}
		else {
			objPrev.style.visibility = "hidden";
			objPrev.href = "#";
		}

		if (page < Math.ceil(totalItems / pageSize)) {
			objNext.href = generateSearchUrl(page + 1);
			objNext.style.visibility = "visible";
		}
		else {
			objNext.style.visibility = "hidden";
			objNext.href = "#";
		}

		objTotal.style.visibility = "visible";
		objPage.style.visibility = "visible";

		objTotal.innerHTML = "<a href=\""+ generateSearchUrl(1) +"\">"+ totalItems + (totalItems > 1 ? " feriehuse fundet" : " feriehus fundet") + "</a>";

		objPage.innerHTML = (totalItems > pageSize ? " - side "+ page +"/"+ Math.ceil(totalItems / pageSize) : "");

		var objTable = document.createElement("TABLE");
		objTable.setAttribute("border", "0");
		objTable.setAttribute("cellpadding", "0");
		objTable.setAttribute("cellspacing", "0");

		var objTBody = document.createElement("TBODY");
		objTable.appendChild(objTBody);

		var houseNodes = oXML.selectNodes("//house");

		var numRows = Math.ceil(itemCount / maxPerRow);
		var rowNum = 0;

		objTR = objTBody.insertRow(objTBody.rows.length);	
		var j = 1;


		var hAddress1 = "";
		var hArea = "";
		var hId = "";

		for (var i = 0; i < houseNodes.length; i++) {
			houseNode = houseNodes[i];
			houseUrl = generateHouseUrl(houseNode);

			hAddress1 = oXML.getText(houseNode.selectSingleNode("address1"));
			hArea = oXML.getText(houseNode.selectSingleNode("area"));
			hId = oXML.getText(houseNode.selectSingleNode("@id"));


			rowNum = Math.ceil(j / maxPerRow);

			if ((j % maxPerRow) == 1) {
				if (j == 1) {
					objTR.className = "first";
				}
				else if (rowNum == numRows) {
					objTR.className = "last";
				}
			}

			objTD = objTR.insertCell(objTR.cells.length);
			
			if ((j % maxPerRow) == 1) {
				objTD.className = "first";
			}
			else if (((j % maxPerRow) == 0) || (j == itemCount)) {
				objTD.className = "last";
			}
		
			oItemDiv = document.createElement("DIV");
			oItemDiv.className = "item";

			
			oImgDiv = document.createElement("DIV");
			oImgDiv.className = "img";

			imgNode = houseNode.selectSingleNode("image");

			if (imgNode != null) {
				objA = document.createElement("A");
				objA.href = houseUrl;
				objA.title = "Feriehus "+ hId + " - Danmark";
				objA.innerHTML = "<img src=\""+ oXML.getText(imgNode.selectSingleNode("@src")) +"\" width=\"104\" alt=\"Feriehus "+ hId +" - Danmark\" />";
				oImgDiv.appendChild(objA);
			}

			oItemDiv.appendChild(oImgDiv);

			
			
			oAddressDiv = document.createElement("DIV");
			oAddressDiv.className = "address";
			oH2 = document.createElement("H2");
			oA = document.createElement("A");

			oA.href = houseUrl;

			oH2.innerHTML = "<a href=\""+ oA.href +"\" title=\"Feriehus "+ hAddress1 +" - "+ hArea +" - Danmark\"><span>"+ hAddress1 +"<span> <span>"+ hArea +"</span></a>";
			oAddressDiv.appendChild(oH2);
			oItemDiv.appendChild(oAddressDiv);

			
			price = parseFloat(oXML.getText(houseNode.selectSingleNode("period/@price")));
			discount = parseFloat(oXML.getText(houseNode.selectSingleNode("period/@discount")));
			total = parseFloat(oXML.getText(houseNode.selectSingleNode("period/@total")));
			curr = oXML.getText(houseNode.selectSingleNode("period/@curr"));

			if (discount > 0) {
				addClassName(objTD, "discount");
			}



			bMemo = (oXML.getText(houseNode.selectSingleNode("@memo")) == "true");
			lId = parseInt(oXML.getText(houseNode.selectSingleNode("@lId")), 10);
			dtArr = oXML.getText(houseNode.selectSingleNode("period/@arrival"));

			oPriceBeforeDiv = document.createElement("DIV");
			oPriceBeforeDiv.className = "priceBefore";
			oPriceBeforeDiv.innerHTML = (str2date(dtArr) > DT_OPTION ? "&nbsp;" : (discount > 0 ? "<del>"+ formatPrice(price, 2, curr) +"</del>" : "&nbsp;"));
			oItemDiv.appendChild(oPriceBeforeDiv);

			oTotalPriceDiv = document.createElement("DIV");
			oTotalPriceDiv.className = "price";
			oTotalPriceDiv.innerHTML = (str2date(dtArr) > DT_OPTION ? "OPTION" : formatPrice(total, 2, curr));

			oItemDiv.appendChild(oTotalPriceDiv);

			if (lId > 0) {
				oMemoDiv = document.createElement("DIV");
				oMemoA = document.createElement("A");
				oMemoA.href = "#";
				setMemoClick(!bMemo, oMemoA, lId, dtArr, objForm.duration.value);
				oMemoA.className = "memo "+ (bMemo ? "remove" : "add");
				oMemoA.innerHTML = (bMemo ? "Fjern fra huskeliste" : "Føj til huskeliste");

				oMemoDiv.appendChild(oMemoA);
				oItemDiv.appendChild(oMemoDiv);
			}

			objTD.appendChild(oItemDiv);

			if (((j % maxPerRow) == 0) || (j == itemCount)) {
				objTR = objTBody.insertRow(objTBody.rows.length);
			}

			j += 1;
		}

		objData.innerHTML = "";
		objData.appendChild(objTable);

		objData.style.display = "block";
		objImg.style.display = "none";

	}
	else {
		objPrev.style.visibility = "hidden";
		objNext.style.visibility = "hidden";
		objTotal.innerHTML = "Din søgning matchede ingen feriehuse.";
		objTotal.style.visibility = "visible";
		objPage.innerHTML = "";
		objData.innerHTML = "";
		objData.style.display = "none";
		objImg.style.display = "block";
	}
}



function parseFerieringMapSearchData(oXML) {
	if (GBrowserIsCompatible()) {
		oGM.clearHouses();

		var totalItems = parseInt(oXML.getText(oXML.selectSingleNode("mapsearchxml/@totalItems")), 10);
		var objList = document.getElementById("searchResultsList");
		var objMap = document.getElementById("searchResultsMap");


		setPagingInformation(totalItems, 0, 0, 0);


		if (totalItems > 0) {
			var hNodes = oXML.selectNodes("//h");
			for (var i = 0; i < hNodes.length; i++) {
				hNode = hNodes[i];

				hId = oXML.getText(hNode.selectSingleNode("@id"));
				hLocId = oXML.getText(hNode.selectSingleNode("@lid"));
				hLat = oXML.getText(hNode.selectSingleNode("@lat"));
				hLng = oXML.getText(hNode.selectSingleNode("@lng"));
				hMemo = (oXML.getText(hNode.selectSingleNode("@m")) == "1");
				hDiscount = (oXML.getText(hNode.selectSingleNode("@d")) == "1");
				addHouse(hId, hLocId, hLat, hLng, hMemo, hDiscount);	
			}
		}

		objList.style.display = "none";
		if (objMap != null) {
			objMap.style.display = "block";
			if (GBrowserIsCompatible()) {
				oGM.map.checkResize();
				oGM.zoomToAll();
			}
		}
	}
}

function parseFerieringSearchData(oXML) {
	var totalItems = parseInt(oXML.getText(oXML.selectSingleNode("searchxml/@totalItems")), 10);
	var firstItem = parseInt(oXML.getText(oXML.selectSingleNode("searchxml/@firstItem")), 10);
	var itemCount = parseInt(oXML.getText(oXML.selectSingleNode("searchxml/@itemCount")), 10);

	var objList = document.getElementById("searchResultsList");
	var objMap = document.getElementById("searchResultsMap");


	var objForm = document.forms["ferieringSearch"];
	var page = parseInt(objForm.page.value, 10);
	var pageSize = parseInt(objForm.pagesize.value, 10);

	setPagingInformation(totalItems, itemCount, page, pageSize);


	if (totalItems > 0) {
		var maxPerRow = 4;


		var objTable = document.createElement("TABLE");
		objTable.className = "items";
		objTable.setAttribute("border", "0");
		objTable.setAttribute("cellpadding", "0");
		objTable.setAttribute("cellspacing", "0");

		var objTBody = document.createElement("TBODY");
		objTable.appendChild(objTBody);

		
		var houseNodes = oXML.selectNodes("//house");

		var numRows = Math.ceil(itemCount / maxPerRow);
		var rowNum = 0;

		objTR = objTBody.insertRow(objTBody.rows.length);
		var j = 1;

		var b = null;
		var lId = null;
		var dt = null;
		var d = null;
		var hId = null;
		var hAddress1 = null;
		var hArea = null;

		for (var i = 0; i < houseNodes.length; i++) {
			var houseNode = houseNodes[i];
			hId = oXML.getText(houseNode.selectSingleNode("@id"))
			hAddress1 = oXML.getText(houseNode.selectSingleNode("address1"))
			hArea = oXML.getText(houseNode.selectSingleNode("area"));
			houseUrl = generateHouseUrl(houseNode);

			rowNum = Math.ceil(j / maxPerRow);

			if ((j % maxPerRow) == 1) {
				if (j == 1) {
					objTR.className = "first";
				}
				else if (rowNum == numRows) {
					objTR.className = "last";
				}
			}

			objTD = objTR.insertCell(objTR.cells.length);
			
			if ((j % maxPerRow) == 1) {
				objTD.className = "first";
			}
			else if (((j % maxPerRow) == 0) || (j == itemCount)) {
				objTD.className = "last";
			}

			var oItemDiv = document.createElement("DIV");
			oItemDiv.className = "item";



			
			var oImgDiv = document.createElement("DIV");
			oImgDiv.className = "img";

			imgNode = houseNode.selectSingleNode("image");

			if (imgNode != null) {
				var objA = document.createElement("A");
				objA.href = houseUrl;
				objA.title = "Feriehus "+ hId + " - Danmark" ;
			
				var objImg = document.createElement("IMG");
				objImg.src = oXML.getText(imgNode.selectSingleNode("@src"));
				objImg.width = oXML.getText(imgNode.selectSingleNode("@width"));
				objImg.alt = "Feriehus "+ hId + " - Danmark";

				objA.appendChild(objImg);
				oImgDiv.appendChild(objA);
			}


			oItemDiv.appendChild(oImgDiv);


			
			
			var oAddressDiv = document.createElement("DIV");
			oAddressDiv.className = "address";
			oH2 = document.createElement("H2");
			oA = document.createElement("A");
			oA.href = houseUrl;
			oH2.innerHTML = "<a href=\""+ oA.href +"\" title=\"Feriehus "+ hAddress1 +" - "+ hArea +" - Danmark" +"\"><span>"+ hAddress1 +"</span>" +"\n"+ "<span>"+ hArea +"</span></a>";
			oAddressDiv.appendChild(oH2);
			oItemDiv.appendChild(oAddressDiv);


					
			oNrDiv = document.createElement("DIV");
			oNrDiv.className = "nr";
			oA2 = oA;
			oA2.title = "Feriehus "+ hId +" - Danmark";
			oA2.innerHTML = "Feriehus "+ hId;
			oNrDiv.appendChild(oA2),
			oItemDiv.appendChild(oNrDiv);
			


			bMemo = (oXML.getText(houseNode.selectSingleNode("@memo")) == "true");
			lId = parseInt(oXML.getText(houseNode.selectSingleNode("@lId")), 10);
			dtArr = oXML.getText(houseNode.selectSingleNode("@period/@arrival"));


			
			price = oXML.getText(houseNode.selectSingleNode("period/@price"));
			discount = parseFloat(oXML.getText(houseNode.selectSingleNode("period/@discount")));
			total = oXML.getText(houseNode.selectSingleNode("period/@total"));
			curr = oXML.getText(houseNode.selectSingleNode("period/@curr"));


			if (discount > 0) {
				addClassName(objTD, "discount");
			}


			var oPriceBeforeDiv = document.createElement("DIV");
			oPriceBeforeDiv.className = "priceBefore";
			oPriceBeforeDiv.innerHTML = (str2date(dtArr) > DT_OPTION ? "OPTION" : (discount > 0 ? "<del>"+ formatPrice(price, 2, curr) +"</del>" : "&nbsp;"));
			oItemDiv.appendChild(oPriceBeforeDiv);

			var oTotalPriceDiv = document.createElement("DIV");
			oTotalPriceDiv.className = "price";
			oTotalPriceDiv.innerHTML = (str2date(dtArr) > DT_OPTION ? "OPTION" : formatPrice(total, 2, curr));

			oItemDiv.appendChild(oTotalPriceDiv);


			
			maxVisitors = oXML.getText(houseNode.selectSingleNode("@maxvisitors"))
			var oMaxVisitorsDiv = document.createElement("DIV");
			oMaxVisitorsDiv.className = "capacity";
			oMaxVisitorsDiv.innerHTML = "Max. "+ maxVisitors +" personer";
			oItemDiv.appendChild(oMaxVisitorsDiv);
			

			
			m2 = oXML.getText(houseNode.selectSingleNode("@m2"));
			var oM2Div = document.createElement("DIV");
			oM2Div.className = "m2";
			oM2Div.innerHTML = m2 +"m²";
			oItemDiv.appendChild(oM2Div);

			if (lId > 0) {
				var oMemoDiv = document.createElement("DIV");
				var oMemoA = document.createElement("A");
				oMemoA.href = "#";
				setMemoClick(!bMemo, oMemoA, lId, dtArr, objForm.duration.value);
				oMemoA.className = "memo "+ (bMemo ? "remove" : "add");
				oMemoA.innerHTML = (bMemo ? "Fjern fra huskeliste" : "Føj til huskeliste");
				oMemoDiv.appendChild(oMemoA);
				oItemDiv.appendChild(oMemoDiv);
			}

			objTD.appendChild(oItemDiv);

			if (((j % maxPerRow) == 0) || (j == itemCount)) {
				objTR = objTBody.insertRow(objTBody.rows.length);
			}

			j += 1;
		}

		objList.innerHTML = "";
		objList.appendChild(objTable);

		objList.style.display = "block";
		if (objMap != null) {
			objMap.style.display = "none";
			if (GBrowserIsCompatible()) {
				oGM.map.checkResize();
			}
		}
	
	}
}


function setOpacity(obj, val) {
	if (obj != null) {
		obj.style.opacity = val/100;
		obj.style.filter = 'alpha(opacity='+ val +')';
	}
}


function toggleLoading(b, mode) {
	var objLoading = document.getElementById("loading");
	if (objLoading != null) {
		objLoading.style.visibility = (b ? "visible" : "hidden");

		var op = (!b ? 100 : 40);
		switch (mode) {
			case "ferieringsearch" :
				var objList = document.getElementById("searchResultsList");
				//var objMap = document.getElementById("gMapContainer");
				
				if (objList != null) {
					setOpacity(objList, op);
				}
				break;
			case "houseperiod" :
				var objPeriods = document.getElementById("housePeriods");
				if (objPeriods != null) {
					setOpacity(objPeriods, op);
				}
				break;
		}
	}
}

function toggleQuickSearchLoading(b) {
	var objLoading1 = document.getElementById("qsLoading1");
	var objLoading2 = document.getElementById("qsLoading2");
	if (objLoading1 != null) {
		objLoading1.style.visibility = (b ? "visible" : "hidden");
	}
	if (objLoading2 != null) {
		objLoading2.style.visibility = (b ? "visible" : "hidden");
	}
}






function checkFerieringQuickSearch() {
	
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		if (objForm != null) {
			if (arguments.length == 0) {
				objForm.page.value = 1;
			}

			var reqKey = "ferieringsearch";
			myRequests.remove(reqKey);

			var oXML = new XMLObject();
			var oXMLHttp = new XMLHttpRequestObject();
			oXMLHttp.async = true;
			oXMLHttp.src = "/custom/site/booking/searchxml.asp?language_id=1";

			var params = "";
			params += "duration="+ encodeURIComponent(objForm.duration.value);

			params += "&startdate="+ encodeURIComponent(objForm.yearmonth.value +"-"+ objForm.day.value);

			params += "&visitors="+ encodeURIComponent(objForm.visitors.value);
			params += "&bedrooms="+ encodeURIComponent(objForm.bedrooms.value);
			params += "&pets="+ encodeURIComponent(objForm.pets.value);
			params += "&area="+ encodeURIComponent(objForm.area.value);
			params += "&pagesize="+ 6;
			params += "&page="+ encodeURIComponent(objForm.page.value);

			if (objForm.aproxydate != null) {
				params += (objForm.aproxydate.checked ? "" : "&aproxydate=0");
			}


			
			var facRx
			facRx = /^fac_.+$/;
			for (var i = 0; i < objForm.elements.length; i++) {
				var objItem = objForm.elements.item(i)
				if (objItem.name.match(facRx)) {
					switch(objItem.type) {
						case "checkbox" :
						case "radio" :
							if (objItem.checked) {
								params += "&"+ objItem.name +"="+ encodeURIComponent(objItem.value);
							}
							break;
						default :
							params += "&"+ objItem.name +"="+ encodeURIComponent(objItem.value);
							break;
					}
				}
			}

			params += "&qs=1"; 

			

			oXMLHttp.args = params;

			var waitObj = new waitForIt();

			waitObj.waitFor = function() {
				return oXMLHttp.completed();
			}

			waitObj.whenDone = function() {
				toggleQuickSearchLoading(false);
				if (oXMLHttp.xml != null) {
					if (oXML.loadXML(oXMLHttp.xml)) {
						oError = oXML.selectSingleNode("//error");
						if (oError == null) {
							parseFerieringQuickSearchData(oXML);
						}
					}
				}
			}


			toggleQuickSearchLoading(true);
			oXMLHttp.load();
			waitObj.run();

			myRequests.add(reqKey, oXMLHttp, waitObj);
			updateFerieringSearchCookie("");
		}
	}
	
	return false;
}


function generateFerieringSearchParams(bHash) {
	var params = "";
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		if (objForm != null) {
			var mapSearch = (objForm.view.value == "map");

			params += (params != "" ? "&" : "") + "view="+ (bHash ? objForm.view.value : encodeURIComponent(objForm.view.value));

//			if (!bHash) {
				params += (params != "" ? "&" : "") + "mode="+ encodeURIComponent(objForm.mode.value);
//			}

			params += (params != "" ? "&" : "") + "duration="+ (bHash ? objForm.duration.value : encodeURIComponent(objForm.duration.value));
			params += (params != "" ? "&" : "") + "startdate="+ (bHash ? objForm.yearmonth.value +"-"+ objForm.day.value : encodeURIComponent(objForm.yearmonth.value +"-"+ objForm.day.value));
			params += (params != "" ? "&" : "") + "visitors="+ (bHash ? objForm.visitors.value : encodeURIComponent(objForm.visitors.value));
			params += (params != "" ? "&" : "") + "bedrooms="+ (bHash ? objForm.bedrooms.value : encodeURIComponent(objForm.bedrooms.value));
			params += (params != "" ? "&" : "") + "pets="+ (bHash ? objForm.pets.value : encodeURIComponent(objForm.pets.value));
			params += (params != "" ? "&" : "") + "area="+ (bHash ? objForm.area.value : encodeURIComponent(objForm.area.value));

			if (objForm.aproxydate != null) {
				params += (objForm.aproxydate.checked ? "" : (params != "" ? "&" : "") + "aproxydate=0");
			}

			if (!mapSearch) {
				params += (objForm.orderby != null ? (params != "" ? "&" : "") + "orderby=" + (bHash ? objForm.orderby.value : encodeURIComponent(objForm.orderby.value)) : "");
				params += (objForm.pagesize != null ? (params != "" ? "&" : "") + "pagesize="+ (bHash ? objForm.pagesize.value : encodeURIComponent(objForm.pagesize.value)) : "");
				params += (objForm.page != null ? (params != "" ? "&" : "") + "page="+ (bHash ? objForm.page.value : encodeURIComponent(objForm.page.value)) : "");
			}

			var facRx = /^fac_.+$/;
			for (var i = 0; i < objForm.elements.length; i++) {
				var objItem = objForm.elements.item(i)
				if (objItem.name.match(facRx)) {
					if (objItem.value != "0") {
						params += "&"+ objItem.name +"="+ (bHash ? objItem.value : encodeURIComponent(objItem.value));
					}
				}
			}
		}	
	}
	return params;
}

function generateFerieringSearchHash() {
	return generateFerieringSearchParams(true);
}

function updateFerieringSearchCookie(h) {
	if (ua["dom"]) {
		if (typeof h != "undefined") {
			h = (h != "" ? "#" + h : h);
		}
		else {
			h = "";
		}
		eraseCookie("frsearchpath");
		createCookie("frsearchpath", window.location.pathname + window.location.search + h);
	}
}

function updateFerieringSearchHash() {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		if (objForm != null) {
			var h = generateFerieringSearchHash();
			dhtmlHistory.add(h, "");
			updateFerieringSearchCookie(h);
		}
	}
}

function initFerieringSearch() {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		var objStateForm = document.forms["ferieringSearchState"];
		if ((objStateForm != null) && (objForm != null)) {

			
			var h = dhtmlHistory.getCurrentLocation();
			h = ((typeof h == "undefined") ? "" : h);

			var rx = /^(.+)=(.*)$/;
			var dtRx = /^(\d{4}-\d{2})-(\d{2})$/;
			var facRx = /^fac_(.+)$/;


			var bLoad = false;


			
			if (h != "") {
				var hArr = h.split("&");

				if (hArr.length > 0) {

					
					for (var i = 0; i < objForm.elements.length; i++) {
						oItem = objForm.elements.item(i);
						if (oItem.name.match(facRx)) {
							oItem.value = "0";
							toggleFacility(oItem.name.replace(facRx, "$1"), false);
						}
					}


					for (var i = 0; i < hArr.length; i++) {
						
						if (hArr[i].match(rx)) {
							k = hArr[i].replace(rx, "$1");
							v = hArr[i].replace(rx, "$2");
							
							if (k == "startdate") {
								if (v.match(dtRx)) {
									v = date2str(str2date(v));
									initField(objForm, "yearmonth", v.replace(dtRx, "$1"));
									initField(objForm, "day", v.replace(dtRx, "$2"));
								}
							}
							else {
								initField(objForm, k, v);
								if (k.match(facRx)) {
									toggleFacility(k.replace(facRx, "$1"), (v == "1"));
								}
								else if (k == "area") {
									initAreaMap(v);
								}
							}
						}
					}
				}

				if (FR_CACHE) {
					var hs = historyStorage.get(h);
					if (hs != null) {
						checkFerieringStoredSearch(hs);
					}
					else {
						doFerieringSearch(false);
					}
				}
				else {
					doFerieringSearch(false);
				}
			}
			
			else {
				
				bLoad = (fieldHasChanged(objStateForm.view, objForm.view) ? true : bLoad);
				bLoad = (fieldHasChanged(objStateForm.mode, objForm.mode) ? true : bLoad);
				bLoad = (fieldHasChanged(objStateForm.page, objForm.page) ? true : bLoad);

				
				if (objStateForm.view.value == objForm.view.value) {
					if (objStateForm.view.value != "map") {
						bLoad = (fieldHasChanged(objStateForm.pagesize, objForm.pagesize) ? true : bLoad);
					}
				}
				else {
					bLoad = (fieldHasChanged(objStateForm.pagesize, objForm.pagesize) ? true : bLoad);
				}
				

				bLoad = (fieldHasChanged(objStateForm.day, objForm.day) ? true : bLoad);
				bLoad = (fieldHasChanged(objStateForm.yearmonth, objForm.yearmonth) ? true : bLoad);
				bLoad = (fieldHasChanged(objStateForm.duration, objForm.duration) ? true : bLoad);
				bLoad = (fieldHasChanged(objStateForm.visitors, objForm.visitors) ? true : bLoad);
				bLoad = (fieldHasChanged(objStateForm.bedrooms, objForm.bedrooms) ? true : bLoad);
				bLoad = (fieldHasChanged(objStateForm.pets, objForm.pets) ? true : bLoad);
				bLoad = (fieldHasChanged(objStateForm.area, objForm.area) ? true : bLoad);
				
				if (objForm.aproxydate != null) {
					bLoad = (fieldHasChanged(objStateForm.aproxydate, objForm.aproxydate) ? true : bLoad);
				}

				for (var i = 0; i < objStateForm.elements.length; i++) {
					oFromItem = objStateForm.elements.item(i);
					oToItem = null;
					if (oFromItem.name.match(facRx)) {
						oToItem = objForm.elements.namedItem(oFromItem.name);

						bLoad = (fieldHasChanged(oFromItem, oToItem) ? true : bLoad);
						toggleFacility(oToItem.name.replace(facRx, "$1"), (oToItem.value == "1"));
					}
				}

				if (bLoad) {
					checkFerieringSearch(false);
				}
				updateFerieringSearchCookie("");
			}

			toggleSRViewTab(objForm.view.value);
		}

	}
}



function checkFerieringStoredSearch(xmlStr) {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		if (objForm != null) {
			var mapSearch = (objForm.view.value == "map");

			var reqKey = "searchresults";

			if (arguments.length == 0) {
				objForm.page.value = 1;
			}

			toggleLoading(true, reqKey);

			var oXML = new XMLObject();
			if (oXML.loadXML(xmlStr)) {
				oError = oXML.selectSingleNode("//error");
				if (oError == null) {
					if (mapSearch) {
						parseFerieringMapSearchData(oXML);
					}
					else {
						parseFerieringSearchData(oXML);
					}
				}
			}
			toggleLoading(false, reqKey);
		}
		updateFerieringSearchCookie();
	}
}



function submitFerieringSearch() {
	window.location = generateSearchUrl(1);
	return false;
}


function checkFerieringSearch(bFirstPage) {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		if (objForm != null) {

			if (bFirstPage) {
				objForm.page.value = 1;
			}

			var params = generateFerieringSearchParams(false);

			

			var reqKey = "ferieringsearch";
			myRequests.remove(reqKey);

			var mapSearch = (objForm.view.value == "map");

			var oXML = new XMLObject();
			var oXMLHttp = new XMLHttpRequestObject();
			oXMLHttp.async = true;

			if (mapSearch) {
				oXMLHttp.src = "/custom/site/booking/mapsearchxml.asp?language_id=1";		
			}
			else {
				oXMLHttp.src = "/custom/site/booking/searchxml.asp?language_id=1";			
			}


			oXMLHttp.args = params;

			var waitObj = new waitForIt();

			waitObj.waitFor = function() {
				return oXMLHttp.completed();
			}

			waitObj.whenDone = function() {
				toggleLoading(false, reqKey);

				if (oXMLHttp.xml != null) {
					if (oXML.loadXML(oXMLHttp.xml)) {

						if (FR_CACHE) {
							historyStorage.put(params, oXMLHttp.xml);
						}

						oError = oXML.selectSingleNode("//error");
						if (oError == null) {
							if (mapSearch) {
								parseFerieringMapSearchData(oXML);
							}
							else {
								parseFerieringSearchData(oXML);
							}
						}
					}
				}
			}

			toggleLoading(true, reqKey);
			oXMLHttp.load();
			waitObj.run();
		
			myRequests.add(reqKey, oXMLHttp, waitObj);

			
		}
	}
	return false;
}







function str2date(s) {
	var rx = /^(\d{4})-(\d{1,2})-(\d{1,2})$/;
	var d = new Date();
	if (s.match(rx)) {
		d.setFullYear(parseInt(s.replace(rx, "$1"), 10), 0, 1);
		d.setMonth(parseInt(s.replace(rx, "$2"), 10) - 1);
		d.setDate(parseInt(s.replace(rx, "$3"), 10));
	}
	return d;
}


function date2str(dt) {
	var y = dt.getFullYear();
	var m = dt.getMonth() + 1;
	var d = dt.getDate();
	return y +"-"+ (m < 10 ? "0" : "") + m +"-"+ (d < 10 ? "0" : "") + d;
}


function date2prettystr(dt) {
	var y = dt.getFullYear();
	var m = dt.getMonth() + 1;
	var d = dt.getDate();
	return d +". "+ getMonthName(m) +" "+ y;
}


function fieldHasChanged(objFrom, objTo) {
	var b = false;
	if ((objFrom != null) && (objTo != null)) {
		switch(objTo.type) {
			case "checkbox" :
				if (objTo.checked && (objFrom.value != "1") || !objTo.checked && (objFrom.value != "0")) {
					b = true;
					copyFieldValue(objFrom, objTo);
				}
				break;
			default :
				if (objFrom.value != objTo.value) {
					b = true;
					copyFieldValue(objFrom, objTo);
				}
				break;
		}
	}
	return b;
}

function copyFieldValue(objFrom, objTo) {
	if ((objFrom != null) && (objTo != null)) {
		initField(objTo.form, objTo.name, objFrom.value);
	}
}

function initField(objForm, k, v) {
	if (objForm != null) {
		var obj = objForm.elements.namedItem(k);
		if (obj != null) {
			switch(obj.type) {
				case "hidden" :
				case "text" :
				case "textarea" :
					obj.value = v;
					break;
				case "checkbox" : 
				case "radio" :
					obj.checked = (v == "1");
					break;
				case "select-one" :
					for (var i = 0; i < obj.options.length; i++) {
						if (obj.options[i].value == v) {
							obj.selectedIndex = i;
						}
					}
			}	
		}
	}
}


function initHouse() {
	var objForm = document.forms["ferieringHouse"];
	var objStateForm = document.forms["ferieringHouseState"];

	
	var h = dhtmlHistory.getCurrentLocation();
	h = ((typeof h == "undefined") ? "" : h);

	var rx = /^(.+)=(.+)$/;
	var dtRx = /^(\d{4}-\d{2})-(\d{2})$/;

	
	if (h != "") {
		var hArr = h.split("&");
		if (hArr.length > 0) {
			for (var i = 0; i < hArr.length; i++) {
				
				if (hArr[i].match(rx)) {
					k = hArr[i].replace(rx, "$1");
					v = hArr[i].replace(rx, "$2");
					
					if (k == "startdate") {
						if (v.match(dtRx)) {
							v = date2str(str2date(v));
							initField(objForm, "yearmonth", v.replace(dtRx, "$1"));
							initField(objForm, "day", v.replace(dtRx, "$2"));
						}
					}
					else {
						initField(objForm, k, v);							
					}
				}
			}
		}
		fetchHouseData();
	}
	else {
		
		var bLoad = false;

		if (objStateForm.duration.value != objForm.duration.value) {
			bLoad = true;
			initField(objForm, "duration", objStateForm.duration.value);
		}
		if (objStateForm.visitors.value != objForm.visitors.value) {
			bLoad = true;
			initField(objForm, "visitors", objStateForm.visitors.value);
		}
		if (objStateForm.day.value != objForm.day.value) {
			bLoad = true;
			initField(objForm, "day", objStateForm.day.value);
		}
		if (objStateForm.yearmonth.value != objForm.yearmonth.value) {
			bLoad = true;
			initField(objForm, "yearmonth", objStateForm.yearmonth.value);
		}

		
		if (bLoad) {
			fetchHouseData();
		}
	}
}

function updateHouse() {
	if (FR_HISTORY) {
		updateHouseHash();
	}
}

function updateHouseHash() {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringHouse"];
		if (objForm != null) {
			var hStr = generateHouseHash();
			dhtmlHistory.add(hStr, "");
			fetchHouseData();
		}
	}
}

function generateHouseHash() {
	var hStr = "";
	var objForm = document.forms["ferieringHouse"];
	if (objForm != null) {
		hStr += (hStr != "" ? "&" : "") + "duration="+ objForm.duration.value;
		hStr += (hStr != "" ? "&" : "") + "visitors="+ objForm.visitors.value;
		hStr += (hStr != "" ? "&" : "") + "startdate="+ objForm.yearmonth.value +"-"+ objForm.day.value;
		if (objForm.aproxydate != null) {
			hStr += (objForm.aproxydate.checked ? "" : (hStr != "" ? "&" : "") + "aproxydate=0");
		}
	}
	return hStr;
}


function parseHousePeriods(oXML) {
	var objForm = document.forms["ferieringHouse"];
	if (objForm != null) {
		var dtStr = objForm.yearmonth.value + "-"+ objForm.day.value;
		var objTarget = document.getElementById("housePeriods");
		var aPeriods = oXML.selectNodes("//p");
		var str = new StringBuffer();

		var bAproxy = true;

		if (aPeriods.length > 0) {
			if (objForm.aproxydate != null) {
				if (!objForm.aproxydate.checked) {
					bAproxy = false;
				}
			}
			else {
				bAproxy = false;
			}
		}


		if (aPeriods.length > 0) {

			for (var i = 0; i < aPeriods.length; i++) {
				oPeriod = aPeriods[i];
				var arr = str2date(oXML.getText(oPeriod.selectSingleNode("@arr")));
				var dep = str2date(oXML.getText(oPeriod.selectSingleNode("@dep")));
				var discount = parseFloat(oXML.getText(oPeriod.selectSingleNode("@d")));
				var discountText = oXML.getText(oPeriod.selectSingleNode("@dt"));
				var price = parseFloat(oXML.getText(oPeriod.selectSingleNode("@p")));
				var totalPrice = parseFloat(oXML.getText(oPeriod.selectSingleNode("@t")));
				var curr = oXML.getText(oPeriod.selectSingleNode("@curr"));

				str.append("<div class=\"period\">");
				str.append("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
				str.append("<tbody>");

				if (bAproxy) {
					str.append("<tr><td colspan=\"2\" class=\"date\">");
					str.append("<div class=\"dates\">");
					str.append("<p><strong>Ankomst:</strong> "+ date2prettystr(arr) +"</p>");
					str.append("<p><strong>Afrejse:</strong> "+ date2prettystr(dep) +"</p>");
					str.append("</div>");
					str.append("</td></tr>");
				}

				if (arr > DT_OPTION) {
					str.append("<tr class=\"total\"><td>Leje i alt</td><td class=\"price\">OPTION</td></tr>");
				}
				else {
					if (discount > 0) {
						str.append("<tr><td>Leje af feriehus</td><td class=\"price\">"+ formatPrice(price, 2, curr) +"</td></tr>");
						str.append("<tr class=\"discount\"><td>"+ discountText +"</td><td class=\"price\">"+ formatPrice(-discount, 2, curr) +"</td></tr>");
					}
					str.append("<tr class=\"total\"><td>Leje i alt</td><td class=\"price\">"+ formatPrice(totalPrice, 2, curr) +"</td></tr>");
				}
				
				str.append("</tbody>");
				str.append("</table>");
				str.append("<div><a href=\"/idd327.asp?state=4&amp;houseid="+ objForm.houseid.value +"&amp;startdate="+ date2str(arr) +"&amp;duration="+ objForm.duration.value +"&amp;visitors="+ objForm.visitors.value +"\">BESTIL HUS</a></div>");
				str.append("</div>");

			}
		}
		else {	
			str.append("<div class=\"error\">Feriehuset er ikke ledigt i denne periode.</div>");
		}		

		objTarget.innerHTML = str;

	}
}




function parseHouseSeason(oXML, year) {
	var objForm = document.forms["ferieringHouse"];
	if (objForm != null) {

		var objSeason = document.getElementById("houseSeasons");
		var cal_year = parseInt(year, 10);
		var duration = parseInt(oXML.getText(oXML.selectSingleNode("houseseasonxml/@duration")), 10);
		var bookingCalendar = oXML.getText(oXML.selectSingleNode("//bookingCalendar/calendar[@year='"+ cal_year +"']"));
		var seasonCalendar = oXML.getText(oXML.selectSingleNode("//seasonCalendar/calendar[@year='"+ cal_year +"']"));

		var periods = oXML.selectNodes("//p");
		var str = new StringBuffer();


		str.append("<table class=\"seasonCalendar\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
		str.append("<tbody>");

		str.append("<tr>");
		str.append("<td class=\"years\" colspan=\"13\">");
	

		
		for (var i = DT_MIN_YEAR; i < DT_MAX_YEAR; i++) {
			str.append("<a href=\"#\" onclick=\"return toggleHouseSeason("+ i +");\""+ (i == cal_year ? " class=\"current\"" : "") +">Sæsonkalender "+ i +"</a>");
		}

		
		str.append("</td>");
		str.append("</tr>");

		str.append("<tr>");
		str.append("<td class=\"year\">&nbsp;</td>");
		str.append("<td class=\"month\">"+ "Jan" +"</td>");
		str.append("<td class=\"month\">"+ "Feb" +"</td>");
		str.append("<td class=\"month\">"+ "Mar" +"</td>");
		str.append("<td class=\"month\">"+ "Apr" +"</td>");
		str.append("<td class=\"month\">"+ "Maj" +"</td>");
		str.append("<td class=\"month\">"+ "Jun" +"</td>");
		str.append("<td class=\"month\">"+ "Jul" +"</td>");
		str.append("<td class=\"month\">"+ "Aug" +"</td>");
		str.append("<td class=\"month\">"+ "Sep" +"</td>");
		str.append("<td class=\"month\">"+ "Okt" +"</td>");
		str.append("<td class=\"month\">"+ "Nov" +"</td>");
		str.append("<td class=\"month\">"+ "Dec" +"</td>");
		str.append("</tr>");

		var td_arrivalday = false;
		var td_dayofyear = "";
		var td_date = "";
		var td_month = "";
		var td_week = "";
		var td_class = "";
		var td_season = "";

		var dtToday = new Date();

		for (var d = 1; d <= 31; d++) {
			str.append("<tr>");
			str.append("<td class=\"day\">"+ d +"</td>");

			for (var m = 1; m <= 12; m++) {
				td_arrivalday = false;
				
				td_date = str2date(cal_year +"-"+ m +"-"+ d);

				td_month = DatePart("m", td_date);
				td_class = "";

				if (td_month == m) { //Day is within current month

					td_dayofweek = (DatePart("w", td_date) + 1);

					if (td_dayofweek == 2) { //2 = monday
						td_week = td_date.getWeekNumber();
					}
					else {
						td_week = "";
					}

					td_dayofyear = DatePart("y", td_date) + 1;

					if (td_date <= dtToday) {
						td_class = "nodata";
					}
					else {

						if (bookingCalendar != "") {
							td_booked = (bookingCalendar.substr(td_dayofyear - 1, 1) == "B");
						}
						else {
							td_booked = false;
						}

						if (td_booked) {
							td_class = "booked";
						}
						else {
							//If not booked, find season:
							td_season = seasonCalendar.substr(td_dayofyear - 1, 1);

							//Check if today is an arrival day:
							if (periods.length > 0) {
								for (var i = 0; i < periods.length; i++) {
									if (date2str(td_date) == oXML.getText(periods[i].selectSingleNode("@arr"))) {
										td_arrivalday = true;
										break;
									}
								}
							}

							td_class = (td_season != "" ? "season_"+ td_season : "nodata");

						}
					}

					if (td_class != "") {
						str.append("<td class=\""+ td_class +"\">");
					}
					else {
						str.append("<td>");
					}

					if (td_arrivalday) {
						str.append("<a href=\"#\" onclick=\"return setHouseDate('"+ date2str(td_date) +"');\" title=\""+ date2str(td_date) +"\">");
					}

					str.append("&nbsp;" + td_week);

					if (td_arrivalday) {
						str.append("</a>");
					}

					str.append("</td>");

					

				}
				else {
					str.append("<td class=\"void\">&nbsp;</td>");
				}
			}

			str.append("</tr>");
		}


		str.append("</tbody>");
		str.append("</table>");


		var seasonPrices = oXML.selectNodes("//seasonPrice");

		if (seasonPrices.length > 0) {
			str.append("<table class=\"seasonCalendarLegends\">");
			str.append("<tbody>");
			str.append("<tr>");

			for (var i = 0; i < seasonPrices.length; i++) {
				sp = seasonPrices[i];
				spId = oXML.getText(sp.selectSingleNode("@id"));
				spCurr = oXML.getText(sp.selectSingleNode("@curr"));
				spPrice = parseFloat(oXML.getText(sp.selectSingleNode("@price")));
				str.append("<td><span class=\"season_"+ spId +"\">"+ spId +"</span> "+ formatPrice(Math.round(7 * spPrice), 2, spCurr) +"</td>");
				//str.append("<td><span class=\"season_"+ spId +"\">"+ spId +"</span></td>");
			}

			str.append("</tr>");
			str.append("<tr><td><span class=\"booked\">&nbsp;</span> Optaget</tr>");
			str.append("</tbody>");
			str.append("</table>");
		}


		objSeason.innerHTML = str;
	}
}


function toggleHouseSeason(y) {
	fetchHouseSeason(y);
	return false;
}

function setHouseDate(dtStr) {
	var objForm = document.forms["ferieringHouse"];
	if (objForm != null) {
		setDateFields(objForm, str2date(dtStr));
	}
	return false;
}

function fetchHouseSeason(y) {
	var objForm = document.forms["ferieringHouse"];
	if (objForm != null) {
		var oXML = new XMLObject();

		var reqKey = "houseseason";
		myRequests.remove(reqKey);

		var oXMLHttp = new XMLHttpRequestObject();	
		oXMLHttp.async = true;
		oXMLHttp.src = "/custom/site/booking/houseseasonxml.asp?language_id=1";

		var params = "";
		params += "houseid="+ encodeURIComponent(objForm.houseid.value);
		params += "&duration="+ encodeURIComponent(objForm.duration.value);
		params += "&startdate="+ encodeURIComponent(y+"-01-01"); 
		params += "&enddate="+ encodeURIComponent(y+"-12-31"); 

		oXMLHttp.args = params;

		var waitObj = new waitForIt();
		waitObj.waitFor = function() {
			return oXMLHttp.completed();
		}
		waitObj.whenDone = function() {
			if (oXMLHttp.xml != null) {
				if (oXML.loadXML(oXMLHttp.xml)) {
					oError = oXML.selectSingleNode("//error");
					if (oError == null) {
						parseHouseSeason(oXML, y);
					}
				}
			}
			toggleLoading(false, reqKey);
		}

		toggleLoading(true, reqKey);
		oXMLHttp.load();
		waitObj.run();

		myRequests.add(reqKey, oXMLHttp, waitObj);
	}
}



function fetchHousePeriod() {
	var objForm = document.forms["ferieringHouse"];

	var reqKey = "houseperiod";
	myRequests.remove(reqKey);

	var oXML = new XMLObject();
	var oXMLHttp = new XMLHttpRequestObject();	
	oXMLHttp.async = true;
	oXMLHttp.src = "/custom/site/booking/houseperiodsxml.asp?language_id=1";

	var params = "";
	params += "houseid="+ encodeURIComponent(objForm.houseid.value);
	params += "&duration="+ encodeURIComponent(objForm.duration.value);
	params += "&visitors="+ encodeURIComponent(objForm.visitors.value);
	params += "&startdate="+ encodeURIComponent(objForm.yearmonth.value +"-"+ objForm.day.value);
	
	if (objForm.aproxydate != null) {
		if (!objForm.aproxydate.checked) {
			params += "&aproxydate=0";
			params += "&e=1";
		}
	}
	else {
		params += "&e=1";
	}


	oXMLHttp.args = params;

	var waitObj = new waitForIt();
	waitObj.waitFor = function() {
		return oXMLHttp.completed();
	}

	waitObj.whenDone = function() {
		if (oXMLHttp.xml != null) {
			if (oXML.loadXML(oXMLHttp.xml)) {
				oError = oXML.selectSingleNode("//error");
				if (oError == null) {
					parseHousePeriods(oXML);
					fetchHouseSeason(objForm.yearmonth.value.substring(0, 4)); 
				}
			}
		}
		toggleLoading(false, reqKey);
	}

	toggleLoading(true, reqKey);
	oXMLHttp.load();
	waitObj.run();

	myRequests.add(reqKey, oXMLHttp, waitObj);
}


function fetchHouseData() {
	fetchHousePeriod();
}



function setHouseView(obj, v) {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringHouse"];
		objForm.view.value = v;
		toggleHouseViewTab(v);
	}
	return false;
}


function toggleHouseViewTab(v) {
	var objDiv = document.getElementById("houseTabs");
	var obj = document.getElementById("housetab"+ v);
	if (obj != null) {
		var oLI = obj.parentNode;
		var oUL = oLI.parentNode;

		addClassName(oLI, "current");
		var aLI = oUL.getElementsByTagName("LI");
		for (var i = 0; i < aLI.length; i++) {
			if (aLI[i] != oLI) {
				removeClassName(aLI[i], "current");
			}
		}

		var objDetails = document.getElementById("houseDetails");
		var objFacilities = document.getElementById("houseFacilities");
		var objMap = document.getElementById("houseMap");
		var objSeasons = document.getElementById("houseSeasons");
		
		var objMiniMap = document.getElementById("houseMiniMap");

		objDetails.style.display = (v == "details" ? "block" : "none");
		objFacilities.style.display = (v == "facilities" ? "block" : "none");
		if (objMap != null) {
			objMap.style.display = (v == "map" ? "block" : "none");

		}
		objSeasons.style.display = (v == "seasons" ? "block" : "none");

		if (GBrowserIsCompatible()) {
			if (objMap != null) {
				oGM.map.checkResize();
				oGM.map.setCenter(oGM.settings.center);
			}
			if (objMiniMap != null) {
				oMiniGM.map.checkResize();
			}
		}
	}
}






/* CROSS-BROWSER EVENT HANDLER */
	function addEvent(obj, evType, fn){
		 if (obj.addEventListener){
			 obj.addEventListener(evType, fn, true);
			 return true;
		 } else if (obj.attachEvent){
			 var r = obj.attachEvent("on"+evType, fn);
			return r;
		 } else {
			return false;
		 }
	}
/* END EVENT HANDLER */





function setMemoClick(b, obj, id, dt, d) {
	obj.onclick = function() {
		return toggleMemo(b, this, id, dt, d);
	}
}

function updateMemoCount(c) {
	if (ua["dom"]) {
		var objMemoCount = document.getElementById("memoCount");
		if (objMemoCount != null) {
			objMemoCount.innerHTML = c;
		}
	}
}

function toggleMemo(bAdd, obj, id, startdate, duration) {
	if (ua["dom"]) {
		defstartdate = startdate;
		defduration = duration

		if (bAdd) {
			if (startdate == null) {
				var objForm = document.forms["ferieringSearch"];
				if (objForm == null) {
					objForm = document.forms["ferieringHouse"];
				}
				if (objForm != null) {
					startdate = objForm.yearmonth.value +"-"+ objForm.day.value;
					duration = objForm.duration.value;
				}
			}
		}

		var reqKey = "memo";
		myRequests.remove(reqKey);

		var oXML = new XMLObject();
		var oXMLHttp = new XMLHttpRequestObject();
		oXMLHttp.async = true;
		oXMLHttp.src = "/custom/site/booking/memoxml.asp";

		var params = "";
		params += "act="+ (bAdd ? "add" : "del");
		params += "&id="+ encodeURIComponent(id);
		params += "&startdate="+ encodeURIComponent(startdate);
		params += "&duration="+ encodeURIComponent(duration);

		oXMLHttp.args = params;

		var waitObj = new waitForIt();

		waitObj.waitFor = function() {
			return oXMLHttp.completed();
		}

		waitObj.whenDone = function() {
			if (oXMLHttp.xml != null) {
				if (oXML.loadXML(oXMLHttp.xml)) {
					oError = oXML.selectSingleNode("//error");
					if (oError == null) {
						updateMemoCount(oXML.getText(oXML.selectSingleNode("memoxml/@count")));
						obj.innerHTML = (bAdd ? "Fjern fra huskeliste" : "Føj til huskeliste");

						if (bAdd) {
							removeClassName(obj, "add");
							addClassName(obj, "remove");
						}
						else {
							removeClassName(obj, "remove");
							addClassName(obj, "add");
						}

						obj.onclick = function() {
							return toggleMemo(!bAdd, this, id, defstartdate, defduration);
						}
					}
				}
			}
			toggleLoading(false, reqKey);			
		}

		toggleLoading(true, reqKey);
		oXMLHttp.load();
		waitObj.run();
		myRequests.add(reqKey, oXMLHttp, waitObj);
	}
	return false;
}

function deleteMemo() {
	return confirm("Vil du slette din huskeliste?"); 
}





var displayCalendar = false;



function setDateFields(objForm, dt) {
	var objYearMonth = objForm.yearmonth;
	var objDay = objForm.day;

	if ((objYearMonth != null) && (objDay != null)) {
		dt = date2str(dt);
		var ym = dt.substr(0, 7);
		var d = dt.substr(8, 2);
		var b = false;

		if (ym != objYearMonth.value) {
			b = true;

			for (var i = 0; i < objYearMonth.options.length; i++) {
			if (objYearMonth.options[i].value == ym) {
				objYearMonth.selectedIndex = i;
			}
		}

		}
		if (d != objDay.value) {
			b = true;

			for (var i = 0; i < objDay.options.length; i++) {
				if (objDay.options[i].value == d) {
					objDay.selectedIndex = i;
				}
			}
		}

		if (b) {
			switch(objForm.name) {
				case "ferieringHouse" :
					updateHouse();
					break;
				case "ferieringSearch" :
					var objQS = document.getElementById("quickSearchResults");
					if (objQS != null) {
						doFerieringQuickSearch();
					}
					else {
						doFerieringSearch(true);
					}
					break;
			}
		}
	}
}



function simpleSearchCBCalendar(objCal) {
	var objForm = document.forms["ferieringSimpleSearch"];
	if (objForm != null) {
		if (objCal.dateClicked) {
			
			var dtValidation = validateSearchDate(objForm, date2str(objCal.date))

			switch (dtValidation.state) {
				case DT_OK :
					
					if (dtValidation.dt <= DT_MAX_DATE) {
						setDateFields(objForm, dtValidation.vdt);
						toggleSimpleCalendar();
					}
					else {
						dtValidation.state = DT_ERR_AFTERMAX;
						alert(getDTWarning(dtValidation));
					}
					break;

				default :
					alert(getDTWarning(dtValidation));
					break;
			}
		}
	}
}


function searchCBCalendar(objCal) {
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		if (objCal.dateClicked) {
			
			var dtValidation = validateSearchDate(objForm, date2str(objCal.date))

			switch (dtValidation.state) {
				case DT_OK :
					
					if (dtValidation.dt <= DT_MAX_DATE) {
						setDateFields(objForm, dtValidation.vdt);
						toggleCalendar();
					}
					else {
						dtValidation.state = DT_ERR_AFTERMAX;
						alert(getDTWarning(dtValidation));
					}
					break;

				default :
					alert(getDTWarning(dtValidation));
					break;
			}
		}
	}
}



function houseCBCalendar(objCal) {
	var objForm = document.forms["ferieringHouse"];
	if (objForm != null) {
		if (objCal.dateClicked) {
			
			var dtValidation = validateHouseDate(date2str(objCal.date));

			switch (dtValidation.state) {
				case DT_OK :
					
					if (dtValidation.dt <= DT_MAX_DATE) {
						setDateFields(objForm, dtValidation.vdt);
						toggleHouseCalendar();
					}
					break;
				default :
					break;
			}
			
		}
	}
}




function generateLegalDates(d) {
	d = parseInt(d, 10)
	var objDur = null;
	var objDur = null;
	for (var i = 0; i < legalDurations.length; i++) {
		if (legalDurations[i].days == d) {
			objDur = legalDurations[i];
			break;
		}
	}

	if (objDur != null) {
		var dtToday = new Date();
		var res = [];

		for (var i = objDur.minDiff; i <= objDur.maxDiff; i++) {
			dt = DateAdd("d", i, dtToday);

			if (objDur.legalDaysOnly) {
				w = DatePart("w", dt);
				if (isLegalDay(w)) {
					res[res.length] = date2str(dt);
				}
			}
			else {
				res[res.length] = date2str(dt);
			}
		}

		return res;
	}
	return [];
}


function generateIllegalDates() {
	var res = [];
	for (var i = 0; i < illegalDates.length; i++) {
		res[res.length] = date2str(illegalDates[i]);
	}
	return res;
}




function hideCalendar() {
	if (ua["dom"]) {
		var oIframe = document.getElementById("calendarFrame");
		if (oIframe != null) {
			displayCalendar = false;	
			oIframe.style.top = "0px";
			oIframe.style.left = "-1000px";
		}
	}
}


function toggleSimpleCalendar(obj) {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSimpleSearch"];
		var objIframe = window.frames["calendarFrame"];
		var oIframe = document.getElementById("calendarFrame");
		if ((objIframe != null) && (objForm != null)) {
			var objDoc = (typeof objIframe.document != "undefined" ? objIframe.document : objIframe.contentDocument);
			var objBody = objDoc.body;
			
			if (displayCalendar) {
				displayCalendar = false;
				oIframe.style.top = "0px";
				oIframe.style.left = "-1000px";

			}
			else {
				displayCalendar = true;
				var legalDates = generateLegalDates(objForm.duration.value);

				objIframe.initializeCalendar( {
					flat : "calendarContainer",
					flatCallback : simpleSearchCBCalendar,
					closeCallback : hideCalendar,
					date : str2date(objForm.yearmonth.value +"-"+ objForm.day.value),
					weekNumbers : true,
					showOthers : false,
					firstDay : 1,
					legalDays : (legalDates.length == 0 ? legalDays : []),
					legalDates : generateLegalDates(objForm.duration.value),
					illegalDates : generateIllegalDates(),
					duration : objForm.duration.value,
					range : [DT_MIN_YEAR, DT_MAX_YEAR],
					maxDate : DT_MAX_DATE
				});

				oIframe.style.height = objIframe.myHeight +"px";
				oIframe.style.width = objIframe.myWidth +"px";

				positionCalendar();
		
			}
		}
	}
	return false;
}


function toggleCalendar(obj) {
	var objForm = document.forms["ferieringSearch"];
	var objIframe = window.frames["calendarFrame"];
	var oIframe = document.getElementById("calendarFrame");
	if ((objIframe != null) && (objForm != null)) {
		var objDoc = (typeof objIframe.document != "undefined" ? objIframe.document : objIframe.contentDocument);
		var objBody = objDoc.body;

		if (displayCalendar) {
			displayCalendar = false;
			oIframe.style.top = "0px";
			oIframe.style.left = "-1000px";

		}
		else {
			displayCalendar = true;
			var legalDates = generateLegalDates(objForm.duration.value);

			objIframe.initializeCalendar( {
				flat : "calendarContainer",
				flatCallback : searchCBCalendar,
				closeCallback : hideCalendar,
				date : str2date(objForm.yearmonth.value +"-"+ objForm.day.value),
				weekNumbers : true,
				showOthers : false,
				firstDay : 1,
				legalDays : (legalDates.length == 0 ? legalDays : []),
				legalDates : generateLegalDates(objForm.duration.value),
				illegalDates : generateIllegalDates(),
				duration : objForm.duration.value,
				range : [DT_MIN_YEAR, DT_MAX_YEAR],
				maxDate : DT_MAX_DATE
			});

			oIframe.style.height = objIframe.myHeight +"px";
			oIframe.style.width = objIframe.myWidth +"px";

			positionCalendar();
		}
	}
}


function toggleHouseCalendar(obj) {
	var objForm = document.forms["ferieringHouse"];
	var objIframe = window.frames["calendarFrame"];
	var oIframe = document.getElementById("calendarFrame");
	var reqKey = "legaldates";

	if ((objIframe != null) && (objForm != null)) {
		var objDoc = (typeof objIframe.document != "undefined" ? objIframe.document : objIframe.contentDocument);
		var objBody = objDoc.body;
		
		if (displayCalendar) {
			displayCalendar = false;
			oIframe.style.top = "0px";
			oIframe.style.left = "-1000px";
		}
		else {

			myRequests.remove(reqKey);

			var oXML = new XMLObject();
			var oXMLHttp = new XMLHttpRequestObject();
			oXMLHttp.async = true;
			oXMLHttp.src = "/custom/site/booking/houseseasonxml.asp?language_id=1";

			var params = "";
			params += "houseid="+ encodeURIComponent(objForm.houseid.value);
			params += "&duration="+ encodeURIComponent(objForm.duration.value);
			params += "&startdate="+ encodeURIComponent(DT_MIN_YEAR +"-01-01");
			params += "&enddate="+  encodeURIComponent(DT_MAX_YEAR + "-12-31");
		
			oXMLHttp.args = params;

			var waitObj = new waitForIt();

			waitObj.waitFor = function() {
				return oXMLHttp.completed();
			}

			waitObj.whenDone = function() {
				toggleLoading(false, reqKey);
				if (oXMLHttp.xml != null) {
					if (oXML.loadXML(oXMLHttp.xml)) {
						oError = oXML.selectSingleNode("//error");
						if (oError == null) {
							var periods = oXML.selectNodes("//p");
							legalDates = [];
							for (var i = 0; i < periods.length; i++) {
								legalDates[legalDates.length] = oXML.getText(periods[i].selectSingleNode("@arr"));				
							}

							displayCalendar = true;

							objIframe.initializeCalendar( {
								flatCallback : houseCBCalendar,
								closeCallback : hideCalendar,
								date : str2date(objForm.yearmonth.value +"-"+ objForm.day.value),
								weekNumbers : true,
								showOthers : false,
								firstDay : 1,
								legalDays : [],
								legalDates : legalDates,
								duration : objForm.duration.value,
								range : [DT_MIN_YEAR, DT_MAX_YEAR],
								maxDate : DT_MAX_DATE
							});

							oIframe.style.height = objIframe.myHeight +"px";
							oIframe.style.width = objIframe.myWidth +"px";
							positionCalendar();
						}
					}
				}
			}
			toggleLoading(true, reqKey);
			oXMLHttp.load();
			waitObj.run();

			myRequests.add(reqKey, oXMLHttp, waitObj);
			
		}
	}
}





function positionCalendar() {
	if (ua["dom"]) {
		if (displayCalendar) {
			var objCalendarIcon = document.getElementById("calendarIcon");
			var objIframe = document.getElementById("calendarFrame");
			if ((objCalendarIcon != null) && (objIframe != null)) {
				var pos = findPos(objCalendarIcon);
				var dX = getPageDim().x - pos[0] - objIframe.offsetWidth;
				var pX = pos[0];
				var pY = pos[1];
				if (dX < 20) {
					pX = getPageDim().x - objIframe.offsetWidth - 20;
				}
				objIframe.style.top = pY +"px";
				objIframe.style.left = pX + "px";
			}
		}
	}
}


function clickedOutsideCalendar(evt) {
	var objIcon = document.getElementById("calendarIcon");
	var objCal = document.getElementById("calendarFrame");
	var obj = null;
	obj = (window.event ? getEventTarget(window.event) : getEventTarget(evt));
	while (obj != null) {
		if ((obj == objIcon) || (obj == objCal)) {
			return false;
		}
		obj = obj.offsetParent;
	}
	return true;
}

function getEventTarget(evt) {
	var targ = (evt.target ? evt.target : evt.srcElement);
	if (targ != null) {
		if (targ.nodeType == 3) {
			targ = targ.parentNode;
		}
	}
	return targ;
}


addEvent(window, "resize", positionCalendar);





function trimInput(obj) {
	if (ua["dom"]) {
		obj.value = obj.value.trim();
	}
	return false;
}

function trimEmailInput(obj) {
	if (ua["dom"]) {
		var s = obj.value.trim();
		obj.value = (isEmail(s) ? s : "");
	}
}

function validateSTF(objForm) {
	var res = true;
	var msg = "";
	if (ua["dom"]) {
		var objFromName = objForm.stfFromName;
		var objFromEmail = objForm.stfFromEmail;
		var objToName = objForm.stfToName;
		var objToEmail = objForm.stfToEmail;
		var objMessage = objForm.stfMessage;

		trimInput(objFromName);
		trimInput(objFromEmail);
		trimInput(objToName);
		trimInput(objToEmail);
		trimInput(objMessage);

		msg = "Der er fejl i:\n";

		if (objFromName.value == "") {
			res = false;
			msg += "- Dit navn" +"\n";
		}	

		if (!isEmail(objFromEmail.value)) {
			objFromEmail.value = "";
			res = false;
			msg += "- Din email" +"\n";
		}

		if (objToName.value == "") {
			res = false;
			msg += "- Modtagers navn" +"\n";
		}

		if (!isEmail(objToEmail.value)) {
			objToEmail.value = "";
			res = false;
			msg += "- Modtagers email" +"\n";
		}
	
		if (!res) {
			alert(msg);
		}
		else {
					
			var reqKey = "stf";
			myRequests.remove(reqKey);
			
			var oResponse = document.getElementById("stfResponse");
			var oFormDiv = document.getElementById("stfForm");
			
			var oXML = new XMLObject();
			var oXMLHttp = new XMLHttpRequestObject();
			oXMLHttp.async = true;
			oXMLHttp.src = "/custom/site/booking/sendtofriendxml.asp?language_id=1";

			var params = "";
			params += "fname="+ encodeURIComponent(objFromName.value);
			params += "&femail="+ encodeURIComponent(objFromEmail.value);
			params += "&tname="+ encodeURIComponent(objToName.value);
			params += "&temail="+ encodeURIComponent(objToEmail.value);
			params += "&m="+ encodeURIComponent(objMessage.value);

			oXMLHttp.args = params;


			var waitObj = new waitForIt();

			waitObj.waitFor = function() {
				return oXMLHttp.completed();
			}

			waitObj.whenDone = function() {
				if (oXMLHttp.xml != null) {
					if (oXML.loadXML(oXMLHttp.xml)) {
						var bStatus = (oXML.getText(oXML.selectSingleNode("sendtofriendxml/@status")) == "true");
						if (bStatus) {
							oResponse.innerHTML = "Din huskeliste er nu sendt til <fragment:email/>".replace("<fragment:email/>", objToEmail.value);
							oResponse.style.display = "block";
							oFormDiv.style.display = "none";
						}
					}
				}
				toggleLoading(false, reqKey);			
			}

			toggleLoading(true, reqKey);
			oXMLHttp.load();
			waitObj.run();
			myRequests.add(reqKey, oXMLHttp, waitObj);
		}
	}
	return false;
}




function gotoCart() {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringHouse"];
		if (objForm != null) {
			var loc = "idd327.asp";
			loc += "?state=4&houseid="+ objForm.houseid.value +"&startdate="+ objForm.yearmonth.value +"-"+ objForm.day.value +"&duration="+ objForm.duration.value +"&visitors="+ objForm.visitors.value;
			window.location = loc;
		}
	}
	return false;
}

function validateVisitors(obj) {
	if (ua["dom"]) {
		var rx = /^\d+$/;
		obj.value = (obj.value.match(rx) ? obj.value : 0);

		var objAdults = obj.form.adults;
		var objChildren = obj.form.children;

		var cAdults = parseInt(objAdults.value, 10);
		var cChildren = parseInt(objChildren.value, 10);

		if (obj.name == "adults") {
			if (cAdults > 0) {
				if (cAdults > objBooking.maxvisitors) {
					cAdults -= (cAdults - objBooking.maxvisitors);
				}
				if (cAdults + cChildren > objBooking.maxvisitors) {
					cAdults = objBooking.maxvisitors - cChildren;
				}
			}
		}
		else {
			if (cChildren > 0) {
				if (cChildren > objBooking.maxvisitors) {
					cChildren -= (cChildren - objBooking.maxvisitors);
				}
				if (cAdults + cChildren > objBooking.maxvisitors) {
					cChildren = objBooking.maxvisitors - cAdults;
				}
			}
		}

		if (cAdults + cChildren == 0) {
			cAdults = 1;
		}


		objAdults.value = cAdults;
		objChildren.value = cChildren;
		checkPriceWarning(cAdults + cChildren);
	
	}
}

function checkPriceWarning(v) {
	if (objBooking != null) {
		var objForm = document.forms["ferieringBooking"];

		if (objForm != null) {
			var dt = str2date(objForm.startdate.value);
			if (dt <= DT_OPTION) {

				var objWarning = document.getElementById("priceWarning");
				var objPeriodPrice = document.getElementById("periodPrice");

				var reqKey = "pricecheck";
				myRequests.remove(reqKey);

				var oXML = new XMLObject();
				var oXMLHttp = new XMLHttpRequestObject();	
				oXMLHttp.async = true;
				oXMLHttp.src = "/custom/site/booking/houseperiodsxml.asp?language_id=1";

				var params = "";
				params += "houseid=" + encodeURIComponent(objForm.houseid.value);
				params += "&duration="+ encodeURIComponent(objForm.duration.value);
				params += "&startdate="+ encodeURIComponent(objForm.startdate.value);
				params += "&visitors="+ encodeURIComponent(v);
				params += "&e=1"; 

				oXMLHttp.args = params;

				var waitObj = new waitForIt();
				waitObj.waitFor = function() {
					return oXMLHttp.completed();
				}

				waitObj.whenDone = function() {
					if (oXMLHttp.xml != null) {
						if (oXML.loadXML(oXMLHttp.xml)) {
							oError = oXML.selectSingleNode("//error");
							if (oError == null) {

								var objP = oXML.selectSingleNode("//p");
								if (objP != null) {
									var p = parseFloat(oXML.getText(objP.selectSingleNode("@t")));
									var c = oXML.getText(objP.selectSingleNode("@curr"));
							
									if (p != objBooking.price) {
										
										objWarning.innerHTML = "<div id=\"priceWarningContent\">"+ "Bemærk, at prisen i perioden for <fragment:visitors/> person(er) er <fragment:price/>.".replace("<fragment:visitors\/>", v).replace("<fragment:price\/>", formatPrice(p, 2, c)) +"</div>";		
										objWarning.style.display = "block";
										objBooking.price = p;
										objPeriodPrice.innerHTML = formatPrice(p, 2, c);

										refreshBookingTotal();
									}
									else {
										objWarning.innerHTML = "";
										objWarning.style.display = "none";
									}
								}
							}
						}
					}
				}

				oXMLHttp.load();
				waitObj.run();

				myRequests.add(reqKey, oXMLHttp, waitObj);
			}
		}
	}
}

function validateBooking(objForm) {
	if (ua["dom"]) {
		refreshBookingTotal();

		var res = true;
		var msg = "";

		trimInput(objForm.firstname);
		trimInput(objForm.lastname);
		trimInput(objForm.address);
		trimInput(objForm.zipcode),
		trimInput(objForm.city);
		trimInput(objForm.phone);
		trimEmailInput(objForm.email);
		trimInput(objForm.adults);
		trimInput(objForm.children);
		
		if (objForm.firstname.value == "") {
			res = false;
			msg += "- Indtast fornavn\n"; 
		}
		if (objForm.lastname.value == "") {
			res = false;
			msg += "- Indtast efternavn\n"; 
		}
		if (objForm.address.value == "") {
			res = false;
			msg += "- Indtast adresse\n"; 
		}
		if (objForm.zipcode.value == "") {
			res = false;
			msg += "- Indtast postnr.\n";  
		}
		if (objForm.city.value == "") {
			res = false;
			msg += "- Indtast by\n"; 
		}
		if (objForm.phone.value == "") {
			res = false;
			msg += "- Indtast telefonnr.\n"; 
		}

		if (parseInt(objForm.adults.value, 10) + parseInt(objForm.children.value, 10) == 0) {
			res = false;
			msg += "- Angiv mindst 1 rejsende.\n"; 
		}
		else {
			if (parseInt(objForm.adults.value, 10) + parseInt(objForm.children.value, 10) > objBooking.maxvisitors) {
				res = false;
				msg += "- For mange rejsende\n"; 
			}
		}

		if (!objForm.accept_terms.checked) {
			res = false;
			msg += "- Du skal acceptere lejebetingelserne\n"; 
		}


		if (!res) {
			alert(msg);
		}

		return res;

	}
	return false;
}

function initBooking() {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringBooking"];
		if (objForm != null) {
			objForm.reset();
		}
	}
}

function refreshBookingTotal() {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringBooking"];
		if (objForm != null) {
			
			var objPets = objForm.pets;
			var objPetsFee = null;
			for (var i = 0; i < FR_PETFEES.length; i++) {
				objPetsFee = objForm.elements.namedItem("prod_"+ FR_PETFEES[i]);
				if (objPetsFee != null) {
					break;
				}
			}
	
			if (objPets != null) {
				if (objPetsFee != null) {
					objPetsFee.value = objPets.value;
				}
			}
		


			var startdate = str2date(objForm.startdate.value);

			var baseprice = objBooking.price;
			var total = baseprice;

			var rxProd = /^prod_([a-f0-9\-]+)$/;
			var rxInt = /^\d+$/;
			var aInput = objForm.getElementsByTagName("INPUT");
			
			var objTotal = document.getElementById("house_total");

			var obj = null;
			var prod_id = 0;
			var prod_quantity = 0;
			var prod_price = 0;
			var prod_total = 0;
			var objProdTotal = null;

			for (var i = 0; i < aInput.length; i++) {
				obj = aInput[i];
				if (obj.id.match(rxProd)) {
					prod_id = obj.id.replace(rxProd, "$1");
					prod_price = objBooking.productprices[prod_id];
					objProdTotal = document.getElementById("prodtotal_"+ prod_id);

					switch (obj.type) {
						case "checkbox" :
						case "radio" :
							prod_quantity = (obj.checked ? 1 : 0);
							prod_total = prod_quantity * prod_price;

							total += prod_total;
							if (objProdTotal != null) {
								objProdTotal.innerHTML = formatPrice(prod_total, 2, FR_CURRENCYCODE);
							}
							break;

						case "text" :
							if (!obj.value.match(rxInt)) {
								obj.value = 0;
							}
							prod_quantity = parseInt(obj.value, 10);
							prod_total = prod_quantity * prod_price;
							total += prod_total;
							if (objProdTotal != null) {
								objProdTotal.innerHTML = formatPrice(prod_total, 2, FR_CURRENCYCODE);
							}
							break;

						case "hidden" :
							prod_quantity = parseInt(obj.value, 10);
							prod_total = prod_quantity * prod_price;
							total += prod_total;
							if (objProdTotal != null) {
								objProdTotal.innerHTML = formatPrice(prod_total, 2, FR_CURRENCYCODE);
							}
							break;
					}
				}
			}

			if (objTotal != null) {
				if (startdate <= DT_OPTION) {
					objTotal.innerHTML = formatPrice(total, 2, FR_CURRENCYCODE);
				}
			}


		}
	}
}

function toggleHouseThumb(src) {
	if (ua["dom"]) {
		var oBigThumb = document.getElementById("hMainImg");
		if (oBigThumb != null) {
			var oImg = new Image();
			oImg.src = src;

			var waitObj = new waitForIt();
			waitObj.waitFor = function() {
				return oImg.complete;
			}
			waitObj.whenDone = function() {
				oBigThumb.src = oImg.src;
				oBigThumb.width = oImg.width;
				oBigThumb.height = oImg.height;
			}

			waitObj.run();
		}
	}
	return false;
}


function checkHouseSearch(objForm) {
	if (ua["dom"]) {
		var rx = /^[a-z0-9]+$/;
		var houseId = objForm.houseid.value.trim();
		if (!houseId.match(rx)) {
			houseId = "";
		}
		objForm.houseid.value = houseId;

		if (houseId != "") {
			window.location = "/sommerhuse/sommerhus-"+ houseId +".htm";
		}
	}
	return false;
}


function checkSimpleSearch(objForm) {
	if (ua["dom"]) {
		var dtValidation = validateSearchDate(objForm, getDTStr(objForm));
		toggleDTWarning(dtValidation);
		if (dtValidation.state == DT_OK) {
			window.location = generateSimpleSearchUrl();		
		}
	}
}

function updateSimpleSearch() {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSimpleSearch"];
		var dtValidation = validateSearchDate(objForm, getDTStr(objForm));
		toggleDTWarning(dtValidation);
	}
}


function initDirectionsOverlay(obj) {
	if (obj != null) {
		obj.style.display = "block";
	}
}

function openDirections(obj) {
	var objForm = obj.form;
	if (objForm != null) {
		var saddr = objForm.hdfFrom.value.trim();
		var daddr = (objForm.hdfOffice.checked ? objForm.hdfOTo.value +" to:" : "").trim() + objForm.hdfTo.value.trim();

		if (saddr != "") {
			window.open("http://maps.google.com?saddr="+ encodeURIComponent(saddr) +"&daddr="+ encodeURIComponent(daddr));
		}

	}
	return false;
}



/********* JH07052009 **********/


var current_loc;
current_loc = "";

function toggleLoc(id) {
	var aLocs = $(".inet_loc");
	
	aLocs.each(function() {
		var locImg = $(this).find("img.loc_img");
		var locTitle = $(this).find(".loc_title a:first");

		if ($(this).attr("id") == id) {
			locImg.attr("src", "/site/images/loc_hover.gif");
			locTitle.css("color", "#c9252b");
		}
		else {
			locImg.attr("src", "/site/images/loc.gif");
			locTitle.css("color", "#576d77");
		}

	});
}


function resetLocs() {
	var aLocs = $(".inet_loc");
	
	aLocs.each(function() {
		var locImg = $(this).find("img.loc_img");
		var locTitle = $(this).find(".loc_title a:first");	
		locImg.attr("src", "/site/images/loc.gif");
		locTitle.css("color", "#576d77");
	});
}


function setLoc(id) {
	if (ua["dom"]) {
		current_loc = id;

		var objForm = document.forms["ferieringSearch"];
		if (objForm != null) {
			if (id != "") {
				initField(objForm, "area", id);
				toggleLoc(id);
			}
			else {
				resetLocs();
			}
			
			var objQS = document.getElementById("quickSearchResults");
			if (objQS != null) {
				doFerieringQuickSearch2();
			}
		}
		
	}
	return false;
}

function returnFalseForSafari(obj) {
	if ($.browser.safari && ($.browser.version.substr(0, 1) == "3")) {
		$.each(obj, function() {
			this.onclick = function() { return false; }
		});
	}
}


function toggleCalendar2(obj) {
	var objForm = document.forms["ferieringSearch"];
	var objIframe = window.frames["calendarFrame"];
	var oIframe = document.getElementById("calendarFrame");
	if ((objIframe != null) && (objForm != null)) {
		var objDoc = (typeof objIframe.document != "undefined" ? objIframe.document : objIframe.contentDocument);
		var objBody = objDoc.body;

		if (displayCalendar) {
			displayCalendar = false;
			oIframe.style.top = "0px";
			oIframe.style.left = "-1000px";

		}
		else {
			displayCalendar = true;
			var legalDates = generateLegalDates(objForm.duration.value);

			objIframe.initializeCalendar( {
				flat : "calendarContainer",
				flatCallback : searchCBCalendar2,
				closeCallback : hideCalendar,
				date : str2date(objForm.yearmonth.value +"-"+ objForm.day.value),
				weekNumbers : true,
				showOthers : false,
				firstDay : 1,
				legalDays : (legalDates.length == 0 ? legalDays : []),
				legalDates : generateLegalDates(objForm.duration.value),
				illegalDates : generateIllegalDates(),
				duration : objForm.duration.value,
				range : [DT_MIN_YEAR, DT_MAX_YEAR],
				maxDate : DT_MAX_DATE
			});

			oIframe.style.height = objIframe.myHeight +"px";
			oIframe.style.width = objIframe.myWidth +"px";

			positionCalendar();
		}
	}
	return false;
}

function searchCBCalendar2(objCal) {
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		if (objCal.dateClicked) {
			
			var dtValidation = validateSearchDate(objForm, date2str(objCal.date))

			switch (dtValidation.state) {
				case DT_OK :
					
					if (dtValidation.dt <= DT_MAX_DATE) {
						setDateFields2(objForm, dtValidation.vdt);
						toggleCalendar();
					}
					else {
						dtValidation.state = DT_ERR_AFTERMAX;
						alert(getDTWarning(dtValidation));
					}
					break;

				default :
					alert(getDTWarning(dtValidation));
					break;
			}
		}
	}
}

function setDateFields2(objForm, dt) {
	var objYearMonth = objForm.yearmonth;
	var objDay = objForm.day;
	var objPrettyDate = objForm.prettydate;

	if ((objYearMonth != null) && (objDay != null)) {
		dt = date2str(dt);
		var y = dt.substr(0, 4);
		var m = dt.substr(5, 2);
		var d = dt.substr(8, 2);
		var ym = dt.substr(0, 7);
		var prettydate = d + "-"+ m +"-"+ y;
		var b = false;

		if (ym != objYearMonth.value) {
			b = true;
			objYearMonth.value = ym;
		}

		if (d != objDay.value) {
			b = true;
			objDay.value = d;
		}
		
		if (prettydate != objPrettyDate.value) {
			objPrettyDate.value = prettydate;
		}

		if (b) {
			var objQS = document.getElementById("quickSearchResults");
			if (objQS != null) {
				doFerieringQuickSearch2();
			}	
		}
	}
}


function doFerieringQuickSearch2() {
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		var dtValidation = validateSearchDate(objForm, getDTStr(objForm));
		toggleDTWarning(dtValidation);
		if (dtValidation.state == DT_OK) {
			checkFerieringQuickSearch2();
		}
	}
}

function checkFerieringQuickSearch2() {
	
	if (ua["dom"]) {
		var objForm = document.forms["ferieringSearch"];
		if (objForm != null) {
			if (arguments.length == 0) {
				objForm.page.value = 1;
			}

			var reqKey = "ferieringsearch";
			myRequests.remove(reqKey);

			var oXML = new XMLObject();
			var oXMLHttp = new XMLHttpRequestObject();
			oXMLHttp.async = true;
			oXMLHttp.src = "/custom/site/booking/searchxml.asp?language_id=1";

			var params = "";
			params += "duration="+ encodeURIComponent(objForm.duration.value);

			params += "&startdate="+ encodeURIComponent(objForm.yearmonth.value +"-"+ objForm.day.value);

			params += "&visitors="+ encodeURIComponent(objForm.visitors.value);
			params += "&bedrooms="+ encodeURIComponent(objForm.bedrooms.value);
			params += "&pets="+ encodeURIComponent(objForm.pets.value);
			params += "&area="+ encodeURIComponent(objForm.area.value);
			params += "&pagesize="+ 10;
			params += "&page="+ encodeURIComponent(objForm.page.value);

			if (objForm.aproxydate != null) {
				params += (objForm.aproxydate.checked ? "" : "&aproxydate=0");
			}


			
			var facRx
			facRx = /^fac_.+$/;
			for (var i = 0; i < objForm.elements.length; i++) {
				var objItem = objForm.elements.item(i)
				if (objItem.name.match(facRx)) {
					switch(objItem.type) {
						case "checkbox" :
						case "radio" :
							if (objItem.checked) {
								params += "&"+ objItem.name +"="+ encodeURIComponent(objItem.value);
							}
							break;
						default :
							params += "&"+ objItem.name +"="+ encodeURIComponent(objItem.value);
							break;
					}
				}
			}

			params += "&qs=1"; 

			

			oXMLHttp.args = params;

			var waitObj = new waitForIt();

			waitObj.waitFor = function() {
				return oXMLHttp.completed();
			}

			waitObj.whenDone = function() {
				toggleQuickSearchLoading(false);
				toggleCloseActive(true);
				if (oXMLHttp.xml != null) {
					if (oXML.loadXML(oXMLHttp.xml)) {
						oError = oXML.selectSingleNode("//error");
						if (oError == null) {
							parseFerieringQuickSearchData2(oXML);
						}
					}
				}
				toggleResults(true, 1500);
			}

			toggleQuickSearchLoading(true);
			toggleCloseActive(false);
			toggleOverlay(true, 500);
			oXMLHttp.load();
			waitObj.run();

			myRequests.add(reqKey, oXMLHttp, waitObj);
			updateFerieringSearchCookie("");
		}
	}
	
	return false;
}



function parseFerieringQuickSearchData2(oXML) {
	var totalItems = parseInt(oXML.getText(oXML.selectSingleNode("searchxml/@totalItems")), 10);
	var firstItem = parseInt(oXML.getText(oXML.selectSingleNode("searchxml/@firstItem")), 10);
	var itemCount = parseInt(oXML.getText(oXML.selectSingleNode("searchxml/@itemCount")), 10);

	var objForm = document.forms["ferieringSearch"];
	var page = parseInt(objForm.page.value, 10);
	var pageSize = 10;

	var objPrev = document.getElementById("qsPrev");
	var objNext = document.getElementById("qsNext");
	var objTotal = document.getElementById("qsTotal");
	var objDetails = document.getElementById("qsDetails");
	var objPage = document.getElementById("qsPage");
	var objData = document.getElementById("quickSearchResultsData");
	//var objTemp = document.getElementById("quickSearchResultsTemp");
	var objBBar = document.getElementById("quickSearchResultsBarBottom");

	if (totalItems > 0) {
		var maxPerRow = 5;


		if (page > 1) {
			objPrev.href = generateSearchUrl(page - 1)
			objPrev.style.visibility = "visible";		
		}
		else {
			objPrev.style.visibility = "hidden";
			objPrev.href = "#";
		}

		if (page < Math.ceil(totalItems / pageSize)) {
			objNext.href = generateSearchUrl(page + 1);
			objNext.style.visibility = "visible";
		}
		else {
			objNext.style.visibility = "hidden";
			objNext.href = "#";
		}

		objTotal.style.visibility = "visible";
		objPage.style.visibility = "visible";

		objTotal.innerHTML = totalItems + (totalItems > 1 ? " feriehuse fundet" : " feriehus fundet");

		objPage.innerHTML = (totalItems > pageSize ? "Side "+ page +"/"+ Math.ceil(totalItems / pageSize) : "");

		objDetails.innerHTML = "<a href=\""+ generateSearchUrl(1) +"\">Vis avancerede søgeresultater</a>";

		var objTable = document.createElement("TABLE");
		objTable.className = "items";
		objTable.setAttribute("border", "0");
		objTable.setAttribute("cellpadding", "0");
		objTable.setAttribute("cellspacing", "0");

		var objTBody = document.createElement("TBODY");
		objTable.appendChild(objTBody);

		var houseNodes = oXML.selectNodes("//house");

		var numRows = Math.ceil(itemCount / maxPerRow);
		var rowNum = 0;

		objTR = objTBody.insertRow(objTBody.rows.length);	
		var j = 1;


		var hAddress1 = "";
		var hArea = "";
		var hId = "";

		for (var i = 0; i < houseNodes.length; i++) {
			houseNode = houseNodes[i];
			houseUrl = generateHouseUrl(houseNode);

			hAddress1 = oXML.getText(houseNode.selectSingleNode("address1"));
			hArea = oXML.getText(houseNode.selectSingleNode("area"));
			hId = oXML.getText(houseNode.selectSingleNode("@id"));


			rowNum = Math.ceil(j / maxPerRow);

			if ((j % maxPerRow) == 1) {
				if (j == 1) {
					objTR.className = "first";
				}
				else if (rowNum == numRows) {
					objTR.className = "last";
				}
			}

			objTD = objTR.insertCell(objTR.cells.length);
			
			if ((j % maxPerRow) == 1) {
				objTD.className = "first";
			}
			else if (((j % maxPerRow) == 0) || (j == itemCount)) {
				objTD.className = "last";
			}
		
			oItemDiv = document.createElement("DIV");
			oItemDiv.className = "item";

			
			oImgDiv = document.createElement("DIV");
			oImgDiv.className = "img";

			imgNode = houseNode.selectSingleNode("image");

			if (imgNode != null) {
				objA = document.createElement("A");
				objA.href = houseUrl;
				objA.title = "Feriehus "+ hId + " - Danmark";
				objA.innerHTML = "<img src=\""+ oXML.getText(imgNode.selectSingleNode("@src")) +"\" width=\"160\" alt=\"Feriehus "+ hId +" - Danmark\" />";
				oImgDiv.appendChild(objA);
			}

			oItemDiv.appendChild(oImgDiv);

			
			
			oAddressDiv = document.createElement("DIV");
			oAddressDiv.className = "address";
			oH2 = document.createElement("H2");
			oA = document.createElement("A");

			oA.href = houseUrl;

			oH2.innerHTML = "<a href=\""+ oA.href +"\" title=\"Feriehus "+ hAddress1 +" - "+ hArea +" - Danmark\"><span>"+ hAddress1 +"<span> <span>"+ hArea +"</span></a>";
			oAddressDiv.appendChild(oH2);
			oItemDiv.appendChild(oAddressDiv);

			
			price = parseFloat(oXML.getText(houseNode.selectSingleNode("period/@price")));
			discount = parseFloat(oXML.getText(houseNode.selectSingleNode("period/@discount")));
			total = parseFloat(oXML.getText(houseNode.selectSingleNode("period/@total")));
			curr = oXML.getText(houseNode.selectSingleNode("period/@curr"));

			if (discount > 0) {
				addClassName(objTD, "discount");
			}



			bMemo = (oXML.getText(houseNode.selectSingleNode("@memo")) == "true");
			lId = parseInt(oXML.getText(houseNode.selectSingleNode("@lId")), 10);
			dtArr = oXML.getText(houseNode.selectSingleNode("period/@arrival"));

			oPriceBeforeDiv = document.createElement("DIV");
			oPriceBeforeDiv.className = "priceBefore";
			oPriceBeforeDiv.innerHTML = (str2date(dtArr) > DT_OPTION ? "&nbsp;" : (discount > 0 ? "<del>"+ formatPrice(price, 2, curr) +"</del>" : "&nbsp;"));
			oItemDiv.appendChild(oPriceBeforeDiv);

			oTotalPriceDiv = document.createElement("DIV");
			oTotalPriceDiv.className = "price";
			oTotalPriceDiv.innerHTML = (str2date(dtArr) > DT_OPTION ? "OPTION" : formatPrice(total, 2, curr));

			oItemDiv.appendChild(oTotalPriceDiv);

			
			maxVisitors = oXML.getText(houseNode.selectSingleNode("@maxvisitors"))
			var oMaxVisitorsDiv = document.createElement("DIV");
			oMaxVisitorsDiv.className = "capacity";
			oMaxVisitorsDiv.innerHTML = "Max. "+ maxVisitors +" personer";
			oItemDiv.appendChild(oMaxVisitorsDiv);
			

			
			m2 = oXML.getText(houseNode.selectSingleNode("@m2"));
			var oM2Div = document.createElement("DIV");
			oM2Div.className = "m2";
			oM2Div.innerHTML = m2 +"m²";
			oItemDiv.appendChild(oM2Div);

			if (lId > 0) {
				oMemoDiv = document.createElement("DIV");
				oMemoA = document.createElement("A");
				oMemoA.href = "#";
				setMemoClick(!bMemo, oMemoA, lId, dtArr, objForm.duration.value);
				oMemoA.className = "memo "+ (bMemo ? "remove" : "add");
				oMemoA.innerHTML = (bMemo ? "Fjern fra huskeliste" : "Føj til huskeliste");

				oMemoDiv.appendChild(oMemoA);
				oItemDiv.appendChild(oMemoDiv);
			}

			objTD.appendChild(oItemDiv);

			if (((j % maxPerRow) == 0) || (j == itemCount)) {
				objTR = objTBody.insertRow(objTBody.rows.length);
			}

			j += 1;
		}
		/*if (objData.innerHTML != "") {
			objTemp.innerHTML = "";
			objTemp.appendChild(objTable);
			var h_before = $(objData).height();
			var h_after = $(objTemp).height();
			$(objData).css("height", h_before+"px");
			objData.innerHTML = "";
			$(objData).animate({height: h_after+"px"}, 500, "swing");
			objData.appendChild(objTable);
			objTemp.innerHTML = "";

		}
		else {
			objData.innerHTML = "";
			objData.appendChild(objTable);
		}*/
		objData.innerHTML = "";
		objData.appendChild(objTable);
		objBBar.style.display = "block";
	}
	else {
		objPrev.style.visibility = "hidden";
		objNext.style.visibility = "hidden";
		objTotal.innerHTML = ""
		objTotal.style.visibility = "visible";
		objBBar.style.display = "block";
		objPage.innerHTML = "";
		objData.innerHTML = "<br/><h2>Din søgning matchede ingen feriehuse.</h2>";
		objDetails.innerHTML = "";
		//objData.style.display = "none";
		//objData.style.height = "auto";
		//objBBar.style.display = "none";
	}
}



function decQSPage2() {
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		var p = parseInt(objForm.page.value, 10);
		p--;
		if (p < 1) {
			p = 1;		
		}
		objForm.page.value = p;
		checkFerieringQuickSearch2(true);
	}
	return false;
}

function incQSPage2() {
	var objForm = document.forms["ferieringSearch"];
	if (objForm != null) {
		var p = parseInt(objForm.page.value, 10);
		p++;
		objForm.page.value = p;
		checkFerieringQuickSearch2(true);
	}
	return false;
}


function toggleOverlay(b, speed) {
	var objOverlay = $("#inet_fp_altSearch");
	if (b) {
		if (objOverlay.css("display") == "none") {
			objOverlay.show("slide", {direction: "up"}, speed);
		}
	}
	else {
		if (objOverlay.css("display") == "block") {
			objOverlay.hide("slide", {direction: "up"}, speed, clearResults);
		}
	}
}

function toggleResults(b, speed) {
	var objResults = $("#quickSearchResults");
	var objResultsData = $("#quickSearchResultsData");
	
	if (b) {
		if (objResultsData.css("display") == "none" && objResultsData.html() != "") {
			objResultsData.css("display", "block");
			objResults.show("slide", {direction: "up"}, speed);
		}
	}
	else {
		objResults.hide("slide", {direction: "up"}, speed);
	}
}

function toggleImg(b) {
	var objImg = $("#inet_front_flash");
	
	if (b) {
		objImg.css("display", "block");
	}
	else {
		objImg.css("display", "none");
	}
}

function toggleCloseActive(b) {
	var aClose = $("span.qsClose a");
	if (b) {
		aClose.bind("click", function() {
			toggleOverlay(false, 1500);
			return false;
		});
	}
	else {
		aClose.unbind();
		aClose.bind("click", function() {
			return false;
		});
	}

	returnFalseForSafari(aClose);
}

function clearResults() {
	var objData = document.getElementById("quickSearchResultsData");
	var objPrev = document.getElementById("qsPrev");
	var objNext = document.getElementById("qsNext");
	var objTotal = document.getElementById("qsTotal");
	var objPage = document.getElementById("qsPage");
	var objBBar = document.getElementById("quickSearchResultsBarBottom");
	
	objPrev.style.visibility = "hidden";
	objNext.style.visibility = "hidden";
	objTotal.innerHTML = "&nbsp;";
	objTotal.style.visibility = "hidden";
	objPage.innerHTML = "";
	objData.innerHTML = "";
	objData.style.display = "none";
	//objData.style.height = "auto";
	objBBar.style.display = "none";
}


