var DEBUG = false;
var isMyPages = false;

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function popIfCookie(officeID, siteId, objectaddress) {
    var cookieEnabled = (navigator.cookieEnabled) ? true : false;
    if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) {
        document.cookie = "testcookie";
        cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false;
    }
    if (cookieEnabled) {
        setTimeout("showShadowBox('/forms/contactAll.aspx?View=freevaluation&Select=chkFriValuation&OfficeID=" + officeID + "&ObjectAddress=" + objectaddress + "', 560, 700)", 1000);
        
        
        createCookie('frivardering', siteId, '14' ); 
    }
}

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
	    }
    }
    return (arrReturnElements)
}

function toggleAdvancedSearch(actLink) {
    var elmSearchArea = document.getElementById("searchArea");
    var searchInput = document.getElementById("txtSearchString");

    if ( elmSearchArea.className != "advancedSearchOpen" ) {	
        elmSearchArea.className = "advancedSearchOpen";
        elmSearchArea.style.height = "53px";		
        openAdvancedSearch(actLink);
    }
    else {
	    closeAdvancedSearch();		
    }
}

function toggleObjektvisionAdvancedSearch() {
	var elmSearchArea = document.getElementById("searchArea");
	if ( elmSearchArea.className != "ObjektvisionSearchOpen" ) {
		elmSearchArea.className = "ObjektvisionSearchOpen";
		elmSearchArea.style.height = "53px";
		openobjektvisionSearch();
	}
	else {
		closeobjektvisionSearch();		
	}
}

function getUrlParameter(param) {
    param = param.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + param + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var url;

    if (window.location.href.indexOf("%") != -1)
        url = Utf8.decode(unescape(window.location.href));
    else
        url = window.location.href; 

    var results = regex.exec(url);
    if (results == null)
        return "";
    else
        return results[1];
}

var Utf8 = {

    // public method for url encoding
    encode: function(string) {
        string = string.replace(/\r\n/g, "\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if ((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // public method for url decoding
    decode: function(utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while (i < utftext.length) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if ((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i + 1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i + 1);
                c3 = utftext.charCodeAt(i + 2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}

var moveTimer;
function openobjektvisionSearch()
{
	clearTimeout(moveTimer);
	var elmSearchArea = document.getElementById("searchArea");
	var intHeight = parseInt(elmSearchArea.style.height);
	var objvisLink = document.getElementById("objvisLink");
	var objvis = 'http://www.objektvision.se/extsearch/ext.aspx?gi=110';
	if (objvisLink.src != objvis) {
	    objvisLink.src = objvis;
	}
    document.getElementById("advancedSearch").style.display="none";
	
	if (parseInt(intHeight) < 350)
	{
		intNewHeight = parseInt(intHeight + (351-intHeight)*0.75);
		elmSearchArea.style.backgroundPosition = "0px " + (intNewHeight - 350) + "px";
		elmSearchArea.style.height = intNewHeight + "px";
		moveTimer = setTimeout('openobjektvisionSearch()',5);
	}
	else {
		var objektvisionSearch = document.getElementById("objektvisionSearch");
		objektvisionSearch.style.display = "block";
		ObjektvisionSearchToggled();
		
	}
	
	var searchOptions = document.getElementById("searchOptions");
	var searchLinks = searchOptions.getElementsByTagName("a");
    for (var i=0; i<searchLinks.length; i++) {
        searchLinks[i].className = '';
    }
	document.getElementById("linkObjektvisionSearch").className = 'currentOption';
}

function closeobjektvisionSearch()
{
	clearTimeout(moveTimer);
	var elmSearchArea = document.getElementById("searchArea");
	var intHeight = parseInt(elmSearchArea.style.height);
	
	if (parseInt(intHeight) > 53)
	{
		intNewHeight = parseInt(intHeight + (53 - intHeight) * 0.75);
		elmSearchArea.style.backgroundPosition = "0px " +  (intNewHeight - 350) + "px";
		elmSearchArea.style.height = intNewHeight + "px";
		moveTimer = setTimeout('closeobjektvisionSearch()',5);
	}
	else {
		var advancedSearch = document.getElementById("objektvisionSearch");
		advancedSearch.style.display = "none";
		elmSearchArea.className = "";
		elmSearchArea.style.backgroundPosition = "0% 100%";
		ObjektvisionSearchToggled();
	}
	document.getElementById("linkObjektvisionSearch").className = '';
}


function openAdvancedSearch(actLink) {
	clearTimeout(moveTimer);
	var elmSearchArea = document.getElementById("searchArea");
	var intHeight = parseInt(elmSearchArea.style.height);
	document.getElementById("objektvisionSearch").style.display="none";
	
	if (parseInt(intHeight) < 350) {
		intNewHeight = parseInt(intHeight + (351-intHeight)*0.75);
		elmSearchArea.style.backgroundPosition = "0px " + (intNewHeight - 350) + "px";
		elmSearchArea.style.height = intNewHeight + "px";
		moveTimer = setTimeout('openAdvancedSearch("' + actLink + '")',5);
	}
	else {
		var advancedSearch = document.getElementById("advancedSearch");
		advancedSearch.style.display = "block";
		AdvancedSearchToggled();
	}
	
	var searchOptions = document.getElementById("searchOptions");
	var searchLinks = searchOptions.getElementsByTagName("a");
    for (var i=0; i<searchLinks.length; i++) {
        searchLinks[i].className = '';
    }
        
	if(actLink=='nProd') {
	    document.getElementById("nyproduktiontoggle").className = 'currentOption';
	} else {
	    document.getElementById("linkAdvancedSearch").className = 'currentOption';
	}
	actLink='';
}

function closeAdvancedSearch() {
	clearTimeout(moveTimer);
	var elmSearchArea = document.getElementById("searchArea");
	var intHeight = parseInt(elmSearchArea.style.height);
	
	if (parseInt(intHeight) > 53)
	{
		intNewHeight = parseInt(intHeight + (53 - intHeight) * 0.75);
		elmSearchArea.style.backgroundPosition = "0px " +  (intNewHeight - 350) + "px";
		elmSearchArea.style.height = intNewHeight + "px";
		moveTimer = setTimeout('closeAdvancedSearch()',5);
	}
	else {
		var advancedSearch = document.getElementById("advancedSearch");
		advancedSearch.style.display = "none";
		elmSearchArea.className = "";
		elmSearchArea.style.backgroundPosition = "0% 100%";
		AdvancedSearchToggled();
	}
	document.getElementById("linkAdvancedSearch").className = '';
}


function roundCorners()
{
	var objMainContent = document.getElementById("mainContent");
	var arrDivs = document.getElementsByTagName("div");
	
	for (var i = arrDivs.length-1; i >= 0; i--)
	{
		if(arrDivs[i].className.substring(0,5) == "boxMe")
		{
			if(arrDivs[i].firstChild.className != "bWrapper1")
			{
				var theDiv = arrDivs[i];
				var wrapperDivs = createBoxWrappers(arrDivs[i].className);
				var cornerDivs = createCornerDivs();
				theDiv.parentNode.insertBefore(wrapperDivs, theDiv);
				theDiv.className = "bWrapper4";
				
				wrapperDivs.firstChild.firstChild.firstChild.appendChild(theDiv);
				theDiv.appendChild(cornerDivs);
			}
		}
		
		if(arrDivs[i].className.substring(0,8) == "imageBox")
		{
			var cornerDivs = createCornerDivs();
			arrDivs[i].appendChild(cornerDivs);
		}		
	}
}

function createBoxWrappers(strClass)
{
	var boxWrapper1 = document.createElement("div");
	boxWrapper1.className = strClass;
	var boxWrapper2 = document.createElement("div");
	boxWrapper2.className = "bWrapper1";
	var boxWrapper3 = document.createElement("div");
	boxWrapper3.className = "bWrapper2";
	var boxWrapper4 = document.createElement("div");
	boxWrapper4.className = "bWrapper3";
	
	boxWrapper1.appendChild(boxWrapper2);
	boxWrapper2.appendChild(boxWrapper3);
	boxWrapper3.appendChild(boxWrapper4);
	
	return boxWrapper1;
}
function createCornerDivs()
{	
	var boxCorners = document.createElement("div");
	boxCorners.className = "bCorners";
	var boxCornerTL = document.createElement("div");
	boxCornerTL.className = "bCornerTL";
	var boxCornerTR = document.createElement("div");
	boxCornerTR.className = "bCornerTR";
	var boxCornerBL = document.createElement("div");
	boxCornerBL.className = "bCornerBL";
	var boxCornerBR = document.createElement("div");
	boxCornerBR.className = "bCornerBR";
	var boxClear = document.createElement("div");
	boxClear.className = "bClear";
	
	boxCorners.appendChild(boxCornerTL);
	boxCorners.appendChild(boxCornerTR);
	boxCorners.appendChild(boxCornerBL);
	boxCorners.appendChild(boxCornerBR);
	boxCorners.appendChild(boxClear);
	
	return boxCorners;
}

function padout(number) { return (number < 10) ? '0' + number : number; }

function ClearChildNodes(parentNode)
{
    while (parentNode.hasChildNodes())
    {
        parentNode.removeChild(parentNode.childNodes[0]);
    }
}

function removeElm(elmID) {
    delElm = document.getElementById(elmID);
    if (delElm)
        delElm.parentNode.removeChild(delElm);
}



function insertFlash( strSrc, width, height, flashVars) {
	var ua = navigator.userAgent.toLowerCase();
	if ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1) && (ua.indexOf("mac") == -1)){
	document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="' + width + '" height="' + height + '">');
	document.write('<param name="movie" value="' + strSrc + '" /><param name="quality" value="best" /><param name="wmode" value="transparent"><param name="flashVars" value="' + flashVars + '"> </object> '); }
	else{ document.write('<object data="' + strSrc + '" type="application/x-shockwave-flash" width="' + width + '" height="' + height + '"><param name="quality" value="best" /><param name="wmode" value="transparent"><param name="flashVars" value="' + flashVars + '"</object>'); }
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


/* VacancyListing */
function ToggleVacancy(sender)
{
	var vacancyDetails = sender.parentNode.getElementsByTagName("tr")[1];
	
	if (sender.className.indexOf("expanded") > -1)
	{
		sender.className = sender.className.replace("expanded", "");
	}
	else
	{
		sender.className += " expanded";
	}
	
	vacancyDetails.style.display = (vacancyDetails.style.display != "none" ? "none" : "");
}

function insertAfter(parent, node, referenceNode) {
	parent.insertBefore(node, referenceNode.nextSibling);
}

function getBostadstyp(intBostadstyp)
{
	switch(intBostadstyp)
	{
		case 1:
			return "Villa";
		case 2:
			return "Fritidshus";
		case 3:
			return "Bostadsr&auml;tt";
		case 4:
			return "Hyresr&auml;tt";
		case 5:
			return "Tomt";
		case 6:
			return "Lantbruk eller g&aring;rd";
		case 7:
			return "Kommersiell fastighet";
		case 8:
			return "Andel i bostadsf&ouml;rening";
	}
	
}

function logError(errorObject)
{
	if (DEBUG)
	{
		if (window.console)
		{
			window.console.error("%1.o", errorObject);
		}
	}
}

function log(logObject)
{
	if (DEBUG)
	{
		if (window.console)
		{
			window.console.log("%1.o", logObject);
		}
	}
}

function getLocationHash()
{
	if (window.location.href.indexOf("#") > -1)
	{
		return window.location.href.substr(window.location.href.indexOf("#"));
	}
	
	return "#";
}

function refreshRoundCorners()
	{
		var listingBoxDivs = document.getElementsByTagName("div");
			
			for (var i=0; i<listingBoxDivs.length; i++)
			{
				if(listingBoxDivs[i].className == "bCorners")
				{
					var cornerDivs = listingBoxDivs[i].childNodes;
					
					
					for (var j=0; j<cornerDivs.length; j++)
					{
						if(cornerDivs[j].className.indexOf("bCorner") != -1)
						{
							cornerDivs[j].style.position = "relative";
							cornerDivs[j].style.position = "absolute";
						}
					}
				}
			}
	}


function searchInputFocused()
{
	var sokHjalpBox = document.getElementById("sokHjalp");
	sokHjalpBox.style.display = "block"; 
}

function searchInputBlurred() {	    
    var sokHjalpBox = document.getElementById("sokHjalp");
    sokHjalpBox.style.display = "none";
	
	var elmSokError = document.getElementById("sokError");
	elmSokError.style.display = "none";
}

function searchBtnBlurred() {
    var elmSokError = document.getElementById("sokError");
	elmSokError.style.display = "none";
}

function goToLink(obj) {
	window.location = obj.getElementsByTagName("a")[0].href;
}

function showShadowBox(src, height, width) {
    var content = src;
    Shadowbox.open({
        content: content,
        player: "iframe",
        height: height,
        width: width
    });
}

function toggle(obj) {
	var el = document.getElementById(obj);
	el.style.display = (el.style.display == 'none' ? '' : 'none');
}

function toggleExpand(obj, obj2) {
    var el = document.getElementById(obj);
    el.style.display = (el.style.display == 'none') ? '' : 'none';

    var el2 = document.getElementById(obj2);
	if (el2 && el2.className.indexOf("expanded") == -1) {
	    el2.className += " expanded";
	} else {
	    el2.className = el2.className.replace("expanded", "");
	}
}

var TimeToFade = 1000.0;
function fade(eid, mid, sMsg){

    var elementMessage = document.getElementById(mid);
    if (elementMessage != null)
        elementMessage.innerHTML = sMsg;

    var element = document.getElementById(eid);
    if(element == null)
        return;
        
    if(element.FadeState == null){        
        element.FadeState = -2;        
    }

    if(element.FadeState == 1 || element.FadeState == -1){
        element.FadeState = element.FadeState == 1 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
    }else{
        element.FadeState = element.FadeState == 2 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade;
        setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
    }
}

function animateFade(lastTick, eid){
    var curTick = new Date().getTime();
    var elapsedTicks = curTick - lastTick;

    var element = document.getElementById(eid);

    if(element.FadeTimeLeft <= elapsedTicks){
        element.style.opacity = element.FadeState == 1 ? '1' : '0';
        element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
        element.FadeState = element.FadeState == 1 ? 2 : -2;
        if (element.FadeState == -2) {
            element.style.display = 'none';
        }
        if (element.FadeState == 2) {
            setTimeout("fade('" + eid + "')", 1000);
        }
        return;
    }

    element.FadeTimeLeft -= elapsedTicks;
    var newOpVal = element.FadeTimeLeft/TimeToFade;
    if(element.FadeState == 1) {
        newOpVal = 1 - newOpVal;
        element.style.display = 'inline';
    }
    element.style.opacity = newOpVal;
    element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
    setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

function getObject(mhobj) {
	if (document.getElementById) {
		mhobj = document.getElementById(mhobj);
	}
	else if (document.all) {
		mhobj = document.all.item(mhobj);
	}
	else {
		mhobj = null;
	}
return mhobj;
}

function switchText(elm, t1, t2) {
    getObject(elm).innerHTML==t1?getObject(elm).innerHTML=t2:getObject(elm).innerHTML=t1;
}

function formatNumber(obj){
    var str = obj.value;
    //remove non-digits
    var reg1 = /[^\d]/g;
    str = str.replace(reg1,"");
    //insert thousand separators
    var reg2=/(-?\d+)(\d{3})/;
    while(reg2.test(str)){
        str=str.replace(reg2,'$1 $2')
    }
    obj.value= str;
}

function pleaseWait(){
    var scrolled_down = window.pageYOffset + 100;
    var maskHeight = document.getElementById('dialog').height();
    var maskWidth = document.getElementById('dialog').width();
    document.getElementById('mask').css({'width':maskWidth,'height':maskHeight});
    document.getElementById('mask').css('display','block');
    document.getElementById('dialog').css('top',  scrolled_down);
    document.getElementById('dialog').css('left', 50);
    document.getElementById('dialog').css('display','block');
}

function endWait(){
    document.getElementById('mask').css('display','none');
    document.getElementById('dialog').css('display','none'); 
}

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);