function OnLoad() {
	try{
		var s = getCookie('sessiondata');
		if (s!=null && s.length>1){
			document.getElementById('logged_in_layer').innerHTML = '<div class="opret"><iframe frameborder="0" src="/login" style="height:25px;width:950px;border: 0px;"></iframe></div>';
			document.getElementById('logged_in_layer').style.display = 'inline';
		} 
		else {
			document.getElementById('login_layer1').style.display = 'inline';
			document.getElementById('login_layer2').style.display = 'inline';
			document.getElementById('login_layer3').style.display = 'inline';
		}
	}
	catch (e){
	}
}

// Retrieves the URL to send the user to after an attempted login.
function getURL() {
	try{
		var s = getCookie('sessiondata');
		if (s!=null && s.length>1){
			return "/mypage";
		} 
		else {
			return "/showall:page=invalidLogin";
		}
	}
	catch (e){
		return "/";
	}
}

// Retrieves the URL to send the user to after an attempted login to register as an auction user
function getURLauction() {
	try{
		var s = getCookie('sessiondata');
		if (s!=null && s.length>1){
			return "/newauctionuser:extern=1";
		} 
		else {
			return "/showall:page=invalidLoginauction";
		}
	}
	catch (e){
		return "/";
	}
}

function OnResize() {
	try {
		if (document.getElementById('middle_content')==null) {
			return; // if called initially and div content isn't set yet >> just return
		}
		setFooter();
		SetToCenter('submitLayer');
	}
	catch (e){ 
	}
}


function WindowSize(xy) { // Retores the Window size
	var myWidth = 0; 
	var myHeight = 0;
	if ( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	if (xy == 'x'){return myWidth;}
	else if (xy == 'y'){return myHeight;}
	else{	return 800;}
}

function CalculateCenter(xy, layer){ //Calculates the position of the top left corner
	var xCenter;
	var yCenter;
	var size;
	var width;
	var height;
	if (xy == 'x') {
		size = WindowSize(xy);
		width = document.getElementById(layer).style.width;
		width = width.replace(/px/, "");
		xCenter = (size/2)-(width/2);
		if (xCenter <= '120'){
			xCenter = '120';
		}
		return xCenter
	}else if (xy == 'y'){
		size = WindowSize(xy);
		height = document.getElementById(layer).style.height;
		height = height.replace(/px/, "");
		yCenter = (size/2)-(height/2);
		if (yCenter <= '10'){
			yCenter = '10';
		}
		return yCenter;
	}
}

function SetToCenter(layerName){
	try {
		document.getElementById(layerName).style.left = CalculateCenter('x', layerName);
		document.getElementById(layerName).style.top = CalculateCenter('y', layerName);
	}
	catch (e){}
}


function addFavourite() {
	try{
		window.sidebar.addPanel('FindAlt.dk - Danmarks annonceportal','http://www.findalt.dk','');
	} 
	catch(err){
		try {
			window.external.AddFavorite('http://www.findalt.dk','FindAlt.dk - Danmarks annonceportal.');
		} 
		catch (err) {}
	}
}

// javascript to check for cookies
function getCookie(name) {
  var pos;
  var token = name + "=";
  var tnlen = token.length;
  var cklen = document.cookie.length;
  var i = 0;
  var j;
  while (i < cklen) {
	j = i + tnlen;
    if (document.cookie.substring(i, j) == token) { 
	  pos = document.cookie.indexOf (";", j);
      if (pos == -1) {
        pos = document.cookie.length;
	  }
      return unescape(document.cookie.substring(j, pos));
    }
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
  } //End While
  return null;
}


// Variables for travel search validation:
// Tries to manipulate some DIV element.
// element = the id of the DIV element to be manipulated
// attribute = the style attribute of the element to be manipulated
// value = the new value of the attribute
function styleSetter(element, attribute, value) {
		okay = false;
		javascript_setvalue = "";
		javascript_checkvalue = "";

		try { // First trying most modern browsers DOM approach
				javascript_setvalue = "document.getElementById('"+element+"').style."+attribute+"='"+value+"';";
				eval(javascript_setvalue);
				javascript_checkvalue = "document.getElementById('"+element+"').style."+attribute+"=='"+value+"';";
				okay = eval(javascript_checkvalue);
		}
		catch (err) {
			//alert(err);
		}

		if (okay == false) {
			try { // Then trying most older MSIE browsers
				javascript_setvalue = "document.all."+element+".style."+attribute+"='"+value+"';";
				eval(javascript_setvalue);
				javascript_checkvalue = "document.all."+element+".style."+attribute+"=='"+value+"';";
				okay = eval(javascript_checkvalue);
			}
			catch (err) { 
				//alert(err);
			}
		}

		if (okay == false) {
			try {	// Finally trying old Netscape browsers
				javascript_setvalue = "document."+element+"."+attribute+"='"+value+"';";
				eval(javascript_setvalue);
				javascript_checkvalue = "document."+element+"."+attribute+"=='"+value+"';";
				okay = eval(javascript_checkvalue);
			}
			catch (err) { 
				//alert(err);
			}
		}
}


// Sets the URL attribute for an iframe if it is not already set
function setURL(url) {
	var okay = false;
	try {
		document.location.href=url;
		okay = true;
	}
	catch (err){}
}

// Sets the URL attribute for an iframe if it is not already set
function setIframeURL(element, url) {
	var okay = false;
	try {
		frames[element].location.href=url;
		okay = true;
	}
	catch (err){}
	if (okay == false) {
		try {
			// Opera hack
			frames[element].location.src=url;
		}
		catch (err) {}
	}
}


// targetSelectBox = The selectbox that is to be manipulated
// parentId = The parent Id the content should match
// allCategories = all the categories that COULD be shown in this dropdown.
// parentRefs = An array integers, each place matching a category id holding a parent id
// preselection_id = If any entry should be preselcted, this is the ID of the entry
// category_selection = The hidden field, that is to be set, if the user selects a "rubrik".
// currentLevel = the current level being populated. Disable all dropdowns further down.
// returns 1 if there are at least 1 match. Else return 0
function fillDropdown(targetSelectBox, parentId, allCategories, parentRefs, preselection_id, category_selection, currentLevel) {
	hideDeeperLevels(currentLevel);
	targetSelectBox.options.length = 0; // reset the selectbox
	var position = 0;
	if (preselection_id == 0) {
		targetSelectBox.options[0] = new Option('Vælg...',0,false,false);
		position++;
	}
	for (var x=0; x<allCategories.length; x++) {
		if (parentRefs[allCategories[x].value] == parentId) {
			try {
				var preselected = (preselection_id == allCategories[x].value);
				targetSelectBox.options[position] = new Option(allCategories[x].text,allCategories[x].value, false , preselected);
			}
			catch (err) {}
			position++;
		}
	}
	if (targetSelectBox.options.length == 1) {
		category_selection.value = parentId;
		return 0;
	}
	else {
		return 1;
	}
}

// disables all levels deeper than the current, which is currently being populated.
// Notice that breaks has deliberately been left out. Once a case is mathced, all the following cases should be executed.
function hideDeeperLevels(currentLevel) {
	switch (currentLevel) {
		case 2: {
			styleSetter('third_level_dropdown','display','none');
		}
		case 3: {
			styleSetter('fourth_level_dropdown','display','none');
		}
	}
}


// When editing an existing AD, we will need to fill all the category-selectboxes,
// and preselect the correct values, reflecting the category the current ad is placed in.
// category_id = the category the current ad is placed in
// parentRefs = An array integers, each place matching a category id holding a parent id
// level2cats, level3cats, leve4cats = the categories that can be placed at each level.
function reverseSelection(category_id, parentRefs, level2cats, level3cats, level4cats, category_selection) {
	// First do the reverse lookup, all the way to level 1.
	var parent_id = parentRefs[category_id];
	if (parent_id == 0) { // At the top level. Just select the presel, and move on to next level.
		for (var idx=0; idx<document.editad.ad_type_1.options.length; idx++) {
			if (document.editad.ad_type_1.options[idx].value == category_id) {
				document.editad.ad_type_1.selectedIndex = idx;
				break; // no need to check the rest. Breaking the FOR loop
			}
		}
		return 1; // return 1 to show level 1 has been filled and selected.
	}
	else {
		// recursively call for the next level with the parent_id
		var levelFinished = reverseSelection(parent_id, parentRefs, level2cats, level3cats, level4cats);
		switch (levelFinished) {
			case 1: {// ready for level 2
				fillDropdown(document.editad.ad_type_2, parent_id, level2cats, parentRefs, category_id, category_selection);
				break;
			}
			case 2: { // ready for level 3
				fillDropdown(document.editad.ad_type_3, parent_id, level3cats, parentRefs, category_id, category_selection);
				break;
			}
			case 3: { // ready for level 4
				fillDropdown(document.editad.ad_type_4, parent_id, level4cats, parentRefs, category_id, category_selection);
				break;
			}
		}
		levelFinished++;
		disableEmptyBoxes();
		return levelFinished;
	}
}


function disableEmptyBoxes() {
	if (document.editad.ad_type_4.options.length == 1) {
		styleSetter('fourth_level_dropdown','display','none');
	}
	else {
		styleSetter('fourth_level_dropdown','display','inline');
	}
	if (document.editad.ad_type_3.options.length == 1) {
		styleSetter('third_level_dropdown','display','none');
	}
	else {
		styleSetter('third_level_dropdown','display','inline');
	}
	if (document.editad.ad_type_2.options.length == 1) {
		styleSetter('second_level_dropdown','display','none');
	}
	else {
		styleSetter('second_level_dropdown','display','inline');
	}
}


// currentmax = the highest number of files of this type allowed in the database
function addUpload(currentmax,numberoffiles) {
	if (numberoffiles == currentmax){
		alert('Vi tillader af pladshensyn desværre ikke mere end ' + currentmax + ' billeder til denne type annonce.');
	}
	else {
		var removeButton            = '<input type="button" style="padding: 4px; width: 95px;" name="noUpload" value="Fortryd tilføjelse" ';
		removeButton = removeButton + 'onclick="removeUpload(' + currentmax + ',' + numberoffiles + ');" />&nbsp;';
		removeButton = removeButton + '<input type=\"file\" name=\"imagefile" id=\"image\" style="height: 28px; padding: 5px; width: 200px;" />&nbsp;';
		removeButton = removeButton + '<input type="image" name="uploadImage" src="/images/tilfoj.gif" alt="Tilføj" style="margin-bottom: -2px;" />';
		document.editad.uploadActivated.value = 'true';
		document.getElementById('imageUpload').innerHTML = removeButton;
	}
}


function removeUpload(currentmax, numberoffiles) {
	var addButton         = '<input type="button" style="padding: 4px; width: 80px;" name="Upload" value="Tilf&oslash;j billede" ';
	addButton = addButton + 'onclick="addUpload(' + currentmax + ',' + numberoffiles + ');" />';
	document.editad.uploadActivated.value = 'false';
	document.getElementById('imageUpload').innerHTML = addButton;
}


// currentmax = the highest number of files of this type allowed in the database
function addMovieUpload(currentmax,numberoffiles) {
	if (numberoffiles == currentmax){
		alert('Vi tillader af pladshensyn desværre ikke mere end ' + currentmax + ' film til denne type annonce.');
	}
	else {
		var removeButton            = '<input type="button" name="noUpload" value="Fortryd tilføjelse" style="padding: 4px; width: 95px;" ';
		removeButton = removeButton + 'onclick="removeMovieUpload(' + currentmax + ',' + numberoffiles + ');" />&nbsp;';
		removeButton = removeButton + '<input type=\"file\" name=\"moviefile" id=\"image\" style="height: 28px; padding: 5px; width: 200px;"/>&nbsp;';
		removeButton = removeButton + '<input type="image" name="uploadMovie" src="/images/tilfoj.gif" style="margin-bottom: -2px;"/>';
		document.editad.uploadActivated.value = 'true';
		document.getElementById('movieUpload').innerHTML = removeButton;
	}
}


function removeMovieUpload(currentmax,numberoffiles) {
	var addButton         = '<input type="button" style="padding: 4px; width: 80px;" name="Upload" value="Tilf&oslash;j film" ';
	addButton = addButton + 'onclick="addMovieUpload(' + currentmax + ',' + numberoffiles + ');" />';
	document.editad.uploadActivated.value = 'false';
	document.getElementById('movieUpload').innerHTML = addButton;
}


function checkUploadActivated() {
	if (document.editad.uploadActivated.value =='true') {
		return true;
	}
	else {
		return false;
	}
}

// layer = the layer to show/hide
// ad_id = the ad to show the picture from
// sequence_nr = the sequence number of the image
// delay = how long to wait, before the image is automatically hidden. (0 = disabled)
//function showImage(layer, ad_id, sequence_nr, delay) {
	//if (delay==0) {
	//	setIframeURL(layer.image_iframe,"/");
	//	styleSetter(layer, 'display', 'inline'); //layer.style.display='inline';
	//}
	//else {
	//	setIframeURL(layer.getElementById("showimage"),"Dummy.htm");
	//	styleSetter(layer, 'display', 'inline'); // layer.style.display='inline';
	//	setTimeout('styleSetter(layer, "display", "none")' , delay); //layer.style.display="none";',delay);
	//}
//}

// layer = the layer to show/hide
// ad_id = the ad to show the picture from
// sequence_nr = the sequence number of the movie
// delay = how long to wait, before the image is automatically hidden. (0 = disabled)
//function showMovie(layer, ad_id, sequence_nr, delay) {
//}


function submitAdsForm(adsForm) {
	if(checkUploadActivated()) {
		alert('Du har valgt at tilføje billede eller film.\nDu må enten sende det med "Send billedet/filmen" knappen,\neller fjerne det igen med "Fortryd tilføjelse",\nhvorefter du kan benytte denne knap igen til at sende dine oplysninger.');
		return false;
	}
	else if (validateAdsForm(adsForm) == false) {
		return false;
	}
	else {
		adsForm.submit();
	}
}


function validateAdsForm(adsForm) {
	if ( adsForm.categorySelected.value=='false' ) {
		alert('Du skal vælge en kategori for annoncen.');
		return false;
	}
	if ( getCitynameFromZipcode(adsForm.area.value ) == '' )	{ // postnr
		alert('Det indtastede postnummer kunne ikke genkendes.');
		return false;
	}
	if ( adsForm.headline.value.length == 0 )	{ // overskrift
		alert('Du skal angive en overskrift for annoncen.');
		return false;
	}
	if ( adsForm.text.value.length == 0 )	{ // annoncetekst
		alert('Du skal angive en beskrivende tekst for varen.');
		return false;
	}
	if ( adsForm.price.value.length == 0 )	{ // pris
		alert('Varen skal have en pris angivet.');
		return false;
	}
	if ( isNumeric(adsForm.price.value) == false ) {
		alert('Prisen skal være et tal.');
		return false;
	}
	return true;
}

function submitPropertyForm(propForm) {
	if(checkUploadActivated()) {
		alert('Du har valgt at tilføje billede eller film.\nDu må enten sende det med "Send billedet/filmen" knappen,\neller fjerne det igen med "Fortryd tilføjelse",\nhvorefter du kan benytte denne knap igen til at sende dine oplysninger.');
		return false;
	}
	else if (validatePropertyForm(propForm) == false) {
		return false;
	}
	else {
		propForm.submit();
	}
}


function validatePropertyForm(propForm) {
	if (propForm.property_type.value==0) {
		alert('Du skal vælge en boligtype.');
		return false;
	}
	if ( getCitynameFromZipcode(propForm.postcode_id.value ) == '' )	{ // postnr
		alert('Det indtastede postnummer kunne ikke genkendes.');
		return false;
	}
	if ( propForm.description.value.length == 0 )	{
		alert('Du skal angive en beskrivelse for boligen.');
		return false;
	}
	if ( propForm.address.value.length == 0 )	{
		alert('Der mangler en adresse.');
		return false;
	}
	if ( propForm.price.value.length == 0 )	{
		alert('Du skal angive en pris.');
		return false;
	}
	else if ( isNumeric(propForm.price.value) == false ) {
		alert('Prisen skal være et tal.');
		return false;
	}
	if ( propForm.area.value.length == 0 )	{
		alert('Du skal angive et boligareal.');
		return false;
	}
	if ( propForm.year.value.length==0) {
		propForm.year.value=0;
	}
	if ( propForm.downpayment.value.length==0) {
		propForm.downpayment.value=0;
	}
	return true;
}

function submitUserForm(userForm, originalEmail) {
	if (userForm.email.value != originalEmail) {
		if (userForm.email.value == userForm.email_confirm.value) {
			alert('Da du har rettet i din email, vil du nu blive logget af.\nDu vil modtage en email på din nye email adresse, med et bekræftelses-link.');
		}
	}	
}


// Used for the CREATE AD form, enabling/disabling the form input fields.
// parameter enable_disable :
// true = disabled
// false = enabled
function enable_disable_smallad_input(sourceForm, category) {
	var dis = false;
	if (category == null || category == 0) {
		dis = true;
	}
	else {
		dis = false;
	}
	sourceForm.buysell.disabled=dis; 
	sourceForm.usednew.disabled=dis;
	sourceForm.phone.disabled=dis;
	sourceForm.area.disabled=dis;
	sourceForm.headline.disabled=dis;
	sourceForm.text.disabled=dis;
	sourceForm.price.disabled=dis;
	sourceForm.categorySelected.value = !(dis);
}

// function meant to grab a series of parameters, and spawn a preview page with those data
function showPreview(sourceForm, previewForm) {
	previewForm.ad_id.value = sourceForm.ad_id.value;
	previewForm.name.value = sourceForm.name.value;
	previewForm.postcode_id.value = sourceForm.area.value;
	previewForm.headline.value = sourceForm.headline.value;
	previewForm.description.value = sourceForm.text.value;
	previewForm.price.value = sourceForm.price.value;
	previewForm.submit();
}

// function meant to grab a series of parameters, and spawn a preview page with those data
function showPropertyPreview(sourceForm, previewForm) {
	previewForm.property_id.value = sourceForm.property_id.value;
	previewForm.name.value = sourceForm.name.value;
	previewForm.postcode_id.value = sourceForm.postcode_id.value;
	previewForm.address.value = sourceForm.address.value;
	previewForm.description.value = sourceForm.description.value;
	previewForm.price.value = sourceForm.price.value;
	previewForm.area.value = sourceForm.area.value;
	previewForm.price_gross.value = sourceForm.price_gross.value;
	previewForm.price_net.value = sourceForm.price_net.value;
	previewForm.rooms.value = sourceForm.rooms.value;
	previewForm.downpayment.value = sourceForm.downpayment.value;
	previewForm.lotarea.value = sourceForm.lotarea.value;
	previewForm.property_type.value = sourceForm.property_type.value;
	previewForm.postcode_id.value = sourceForm.postcode_id.value;
	previewForm.basement.value = sourceForm.basement.value;
	previewForm.year.value = sourceForm.year.value;
	previewForm.property_type_name.value = sourceForm.property_type[sourceForm.property_type.selectedIndex].text;

	previewForm.submit();
}

function ShowResults(myForm){
	location="/travel:search=1";
	myForm.submit();
}

function IsLeapYear(checkYear){
	if(checkYear%4==0){
		if(checkYear%100==0 && checkYear%400!=0){
			return false;
		}else{
			return true;
		}
	}else{
		return false;
	}
}

function ShowLayer(id, action){
		ok = false;
		
		if (ok == false) {
			try {	//MO or OP? Most modern browsers DOM approach
			ok = eval("document.getElementById('" + id + "').style.visibility='" + action + "'");
			}
			catch (err) {}
		}
		
		if (ok == false) {
			try { // IE?
				ok = eval("document.all." + id + ".style.visibility='" + action + "'");
			}
			catch (err) {}
		}
		
		if (ok == false) {
			try { // NN?
			ok = eval("document." + id + ".visibility='" + action + "'");
			}
			catch (err) {}
		}
}


function ValidateData(myForm){
	var homeleaveday=myForm.homeleaveday.options[myForm.homeleaveday.selectedIndex].value;
	var homeleavemonth=myForm.homeleavemonth.options[myForm.homeleavemonth.selectedIndex].value;
	var homeyear=homeleavemonth.slice(0,4);
	var homemounth=homeleavemonth.slice(5);
	var homedate=homeyear+homemounth+homeleaveday;
	
	var destleaveday=myForm.destleaveday.options[myForm.destleaveday.selectedIndex].value;
	var destleavemonth=myForm.destleavemonth.options[myForm.destleavemonth.selectedIndex].value;
	var destyear=destleavemonth.slice(0,4);
	var destmounth=destleavemonth.slice(5);
	var destdate=destyear+destmounth+destleaveday;
	var destleaveday=myForm.destleaveday.options[myForm.destleaveday.selectedIndex].value;

//	var date=new Date();
	var date = new Date();
	date.setDate(date.getDate()+1);
	var year=date.getFullYear();
	var mounth=date.getMonth()+1;
	var day=date.getDate();
	var todaysDate=10000*year+100*mounth+day;

	if((destmounth==4 && destleaveday==31)	//Valid arrivale date?
	||(destmounth==6 && destleaveday==31)
	||(destmounth==9 && destleaveday==31)
	||(destmounth==11 && destleaveday==31)
	||(!IsLeapYear(destyear) && destmounth==2 && destleaveday>28)
	||(IsLeapYear(destyear) && destmounth==2 && destleaveday>29)
	||(destdate<todaysDate)
	||(destdate<homedate)){
		styleSetter('AlertDep','display','none');
		styleSetter('AlertAr','display','inline');
	
	}else if((homemounth==4 && homeleaveday==31) //Valid departure date?	
	||(homemounth==6 && homeleaveday==31)
	||(homemounth==9 && homeleaveday==31)
	||(homemounth==11 && homeleaveday==31)
	||(!IsLeapYear(homeyear) && homemounth==2 && homeleaveday>28)
	||(IsLeapYear(homeyear) && homemounth==2 && homeleaveday>29)
	||(homedate<todaysDate)){
		styleSetter('AlertDep','display','inline');
		styleSetter('AlertAr','display','none');
	}else{
		ShowResults(myForm);			//Link and search flights			
	}
}

function getWindowHeight() {
	var windowHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
		windowHeight = window.innerHeight;
	}
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		}
		else {
			if (document.body && document.body.clientHeight) {
				windowHeight = document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}

function getWindowWidth() {
	var windowWidth = 0;
	if (typeof(window.innerWidth) == 'number') {
		windowWidth = window.innerWidth;
	}
	else {
		if (document.documentElement && document.documentElement.clientWidth) {
			windowWidth = document.documentElement.clientWidth;
		}
		else {
			if (document.body && document.body.clientWidth) {
				windowWidth = document.body.clientWidth;
			}
		}
	}
	return windowWidth;
}

function setFooter() {
	if (document.getElementById) {
		var windowHeight = getWindowHeight();
		if (windowHeight > 0) {
			var topToolbarHeight = 0;
			var searchbarHeight = 0;
			var breadcrumbHeight = 0;
			var contentHeight = 0;
			var highestContentElement = 0;
			var footerHeight = 0;
			var footerMargin = 20;
			var auctionHeight = 0;

			// get-height wrapped in try-catch in case it isn't included.
			try {
				topBannerHeight = document.getElementById('banner_top').offsetHeight;
			}
			catch (e){}
			try {
				topToolbarHeight = document.getElementById('topTool').offsetHeight;
			}
			catch (e){}
			try {
				searchbarHeight = document.getElementById('searchbar_wrapper').offsetHeight;
			}
			catch (e){}
			try {
				breadcrumbHeight = document.getElementById('breadcrumb').offsetHeight;
			}
			catch (e){}
			try {
				highestContentElement = document.getElementById('leftColumn').offsetHeight;
			}
			catch (e){}
			try {
				auctionHeight = document.getElementById('auctionTeaser').offsetHeight+20;
			}
			catch (e){}
			try {
				auctionHeight = document.getElementById('auctionCountdown').offsetHeight+10;
			}
			catch (e){}
			try {
				auctionHeight = document.getElementById('auktionWaiting').offsetHeight+10;
			}
			catch (e){}
			try {
				contentHeight = document.getElementById('middle_content').offsetHeight;
				if (contentHeight > highestContentElement){
					highestContentElement = contentHeight;
				}
			}
			catch (e){}
			try {
				contentHeight = document.getElementById('rightContent').offsetHeight;
				if (contentHeight > highestContentElement){
					highestContentElement = contentHeight;
				}
			}
			catch (e){}
			try {
				contentHeight = document.getElementById('rightContent2').offsetHeight;
				if (contentHeight > highestContentElement){
					highestContentElement = contentHeight;
				}
			}
			catch (e){}

			// Added manually 95px so the footer would go all the way down. This is a hack made because the auction-teaser was inserted
			var totalContentHeight = topBannerHeight + topToolbarHeight + searchbarHeight + breadcrumbHeight + highestContentElement + auctionHeight;
			try{
				var footerElement = document.getElementById('footer');
				footerHeight = footerElement.offsetHeight;

				if (windowHeight - (totalContentHeight + footerMargin + footerHeight) >= 0) {
					var windowWidth = getWindowWidth();
					var footerWidth = footerElement.offsetWidth;
					var newOffset = 0;
					var newOffset = parseInt((windowWidth-footerWidth) / 2);

					footerElement.style.display = 'none';
					footerElement.style.position = 'absolute';
					footerElement.style.top = (windowHeight - footerHeight ) + 'px';
					footerElement.style.left = newOffset + 'px';
					footerElement.style.display = 'inline';
				}
				else {
					var windowWidth = getWindowWidth();
					var footerWidth = footerElement.offsetWidth;
					var newOffset = 0;
					if (windowWidth-footerWidth>0){
						newOffset = parseInt((windowWidth-footerWidth) / 2);
					}

					footerElement.style.display = 'none';
					footerElement.style.position = 'absolute';
					footerElement.style.top = (totalContentHeight+footerMargin) + 'px';
					footerElement.style.left = newOffset + 'px';
					footerElement.style.display = 'inline';
				}
			}
			catch (e){}
		}
	}
}


// checks if a value is a number. One , is allowed.
function isNumeric(val) {
	var regExp;
	if (val.length == 1 || val.length == 2) {
		regExp = /^[0-9]+$/;
	}
	else {
		regExp = /^[0-9](,)?[0-9]+$/;
	}
	if (val.match(regExp)) {
		return true; 
	} 
	else { 
		return false; 
	}
}





// resets the searchform when searching for cars
function resetCarSearch(searchForm) {
	searchForm.sarg.value="";
	searchForm.make.options[0].selected=true;
	searchForm.make.focus();
	searchForm.pricemin.value="Min";
	searchForm.pricemax.value="Max";
	searchForm.yearmin.options[0].selected=true;
	searchForm.yearmin.focus();
	searchForm.yearmax.options[searchForm.yearmax.options.length-1].selected=true;
	searchForm.yearmax.focus();
	searchForm.kmmin.value="Min";
	searchForm.kmmax.value="Max";
	searchForm.post_code.value="Postnr";
	searchForm.region.disabled=false;
	searchForm.region.options[0].selected=true;
	searchForm.region.focus();
	searchForm.text.value="Fritekst";
	searchForm.make.focus();
}

   function PopupPic(sPicURL) { 
     window.open( "poppic.html?"+sPicURL, "", "resizable=1,HEIGHT=10,WIDTH=10"); 
   } 
