﻿LB = new Lejebolig();
function Lejebolig() { }

function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
			
		elements.push(element);
	}
	return elements;
}
var loadState = new Array();
var stateLoaded = false;
function addDOMReadyListener(fn) {
	if (document.addEventListener)
		document.addEventListener("DOMContentLoaded", fn, false);
	else {
		loadState.push(fn);
		document.onreadystatechange = readyState;
	}
}
function readyState() {
    if (stateLoaded)
        return;
        
	if (document.readyState == "interactive" || document.readyState == "complete") {
		for (var i = 0; i < loadState.length; i++)
			loadState[i]();
			
		stateLoaded = true;
	}
}
function addEvent(obj, evType, fn, useCapture) {
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, useCapture);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on" + evType, fn);
        return r;
    }
}
function findPos(obj) {
    var left = 0;
    var top = 0;
    if (obj.offsetParent) {
        do {
            left += obj.offsetLeft;
            top += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return [left, top];
}
function fixPosition(fixObj, limitObj, extraMargin) {
    var pos = findPos(fixObj);
    var limit = limitObj.offsetHeight + findPos(limitObj)[1] - pos[1] - fixObj.offsetHeight;

    if (pos[0] > 0 || pos[1] > 0) {
        addEvent(window, "scroll", function() {
            var top = document.documentElement.scrollTop - pos[1] + extraMargin;

            fixObj.style.marginTop = Math.max(Math.min(top, limit), 0) + "px";
        }, false);
    }
}
function registerToggleDisplay(activatorId, toggleId) {
    var act = $(activatorId);
    var tog = $(toggleId);

    if (act && tog) {
        addEvent(act, "click", new function() {
            tog.style.display = (tog.style.display == "block") ? "none" : "block";
        }, false);
    }
}
function toggleLogin() {
    var login = $(login_container_id);

    if (login)
        login.style.display = (login.style.display == "block") ? "none" : "block";

    return !login;
}
function openWindow(href, id, status) {
    if (!status)
        status = "";

    var wnd = window.open(href, id, status);

    if (wnd)
        wnd.focus();

    return !wnd;
}
function fixDefaultButton(id) {
	var button = $(id);
	if (button && typeof(button.click) == "undefined") {
		button.click = function() { 
			var result = true;
			if (button.onclick)
				result = button.onclick();
			if (typeof(result) == "undefined" || result) {
				eval(button.getAttribute("href"));
			}
		}
	}
}
var defaults = new Array();
function registerDefaultToggle(elementId, forget, focusFunc, blurFunc) {
    var element = $(elementId);

    if (element != null) {
        addEvent(element, "focus", function () { toggleDefault(element, forget, true, focusFunc); }, false);
        addEvent(element, "blur", function () { toggleDefault(element, forget, false, blurFunc); }, false);
    }
}
function toggleDefault(element, forget, focus, func) {
    var def = defaults[element.id];

    if (focus) {
        if (!def)
            def = defaults[element.id] = element.value;

        if (element.value == def)
            element.value = "";

        if (func)
            func(element);
    } else if (def && element.value.length == 0 && !forget) {
        element.value = def;

        if (func)
            func(element);
    }
}
function showHideSubmenu(id) {
    var elements = document.getElementsByTagName("ul");
    for (var i = 0; i < elements.length; i++) {
        var element = elements.item(i);
        if (element.className.indexOf("submenu-dropdown") > -1) {
            if (element.id == id) {
                element.style.display = (element.style.display != "block" ? "block" : "none");
            }
            else {
                element.style.display = "none";
            }
        }
    }
}
function openContactForm(href) {
    return openWindow(href, "contact-form", "width=600,height=550");
}
function showMap(href) {
    return openWindow(href, "map", "width=800,height=600");
}
function openViewAd(href) {
    return openWindow(href, "view-ad");
}
function writeFreewayLinks() {
    if (!window.fwSiteName || !window.fwSiteUrl)
        return;

    var partnerLinks = $("partner-links");

    var index = indexOf(fwSiteName, function(value) { return (value == "Lejebolig.dk"); });
    
    if (index > -1) {
        fwSiteName.splice(index, 1);
        fwSiteUrl.splice(index, 1);
    }

    for (var i = 0; i < fwSiteName.length; i++) {
        var link = document.createElement("a");
        partnerLinks.appendChild(link);

        link.innerHTML = fwSiteName[i];
        link.setAttribute("href", fwSiteUrl[i]);
        link.setAttribute("rel", "nofollow");
        link.onclick = function() { return openWindow(this.href, "partner"); };
        partnerLinks.appendChild(document.createTextNode(" | "));
    }
}
function indexOf(arr, predicate) {
    for (var i = 0; i < arr.length; i++) {
        if (predicate(arr[i]))
            return i;
    }

    return -1;
}
function closeOverlay() {
    var overlay = $("banner-overlay");
    
    if (overlay)
        overlay.style.display = "none";

    return !overlay;
}
function rentMulti(sourceId, multiId, destId) {
    var sourceVal = parseFloat($(sourceId).value)
    var multiVal = parseInt($(multiId).options[$(multiId).selectedIndex].value);

    if (!isNaN(sourceVal) && !isNaN(multiVal) && multiVal > 0) {
        $(destId).value = sourceVal * multiVal;
    }
}