﻿function GrafType(nummer, filter, gennemsnit, navn, beskrivelse) {
	this.nummer = nummer;
	this.filter = filter;
	this.gennemsnit = gennemsnit;
	this.navn = navn;
	this.beskrivelse = beskrivelse;
}

var GrafTyper = new Array(
	new GrafType(1, 3, true, "Udbudspriser", "Udbudspriser"),
	new GrafType(2, 3, true, "Udbudspris pr. m²", "Udbudspris pr. m²"),
	new GrafType(3, 2, false, "Udbudspriser i intervaller", "Udbudspriser i intervaller"),
	new GrafType(4, 2, false, "Udbudskvadratmeterpriser i intervaller", "Udbudskvadratmeterpriser i intervaller"),
	new GrafType(5, 3, false, "Boliger til salg", "Boliger til salg"),
	new GrafType(6, 3, true, "Liggetider", "Liggetider"),
	new GrafType(7, 3, false, "Fjernede boliger", "Fjernede boliger"),
	//new GrafType(8, 3, false, "Udvikling i antal solgte emner", "Udvikling i antal solgte emner"),
	new GrafType(9, 3, false, "Nye boliger til salg", "Nye boliger til salg"),
	//new GrafType(10, 3, true, "Udvikling i salgspris", "Udvikling i salgspris"),
	new GrafType(101, 4, false, "Udvikling i antal besøgende", "Udvikling i antal besøgende"),
	new GrafType(102, 4, false, "Udvikling i antal emnevisninger", "Udvikling i antal emnevisninger"),
	new GrafType(103, 4, false, "Udvikling i antal søgninger", "Udvikling i antal søgninger"));
	
function InitGrafTyper(id, filter, value) {
	var element = $$(id);
	if(!element) return;
	var options = element.options;
	if(!options) return;
	options.length = 0;
	for(var i=0;i<GrafTyper.length;i++) {
	  if(filter & GrafTyper[i].filter)
			options[options.length] = new Option(GrafTyper[i].navn, GrafTyper[i].nummer);
	}
	SetSelect(id, value);
}
	
function RangeringType(nummer, navn, beskrivelse) {
	this.nummer = nummer;
	this.navn = navn;
	this.beskrivelse = beskrivelse;
}

var RangeringTyper = new Array(
	new RangeringType(1, "Kontantpris", "Kontantpris"),
	new RangeringType(2, "Kvadratmeterpris", "Kvadratmeterpris"));
	
function InitRangeringTyper(id, value) {
	var element = $$(id);
	if(!element) return;
	var options = element.options;
	if(!options) return;
	options.length = 0;
	for(var i=0;i<RangeringTyper.length;i++) {
			options[options.length] = new Option(RangeringTyper[i].navn, RangeringTyper[i].nummer);
	}
	SetSelect(id, value);
}
	
function BoligType(nummer, navn, flertal) {
	this.nummer = nummer;
	this.navn = navn;
	this.flertal = flertal; 
}
	
var BoligTyper = new Array(
	new BoligType(100, "Villa", "Villaer"),
	new BoligType(200, "Rækkehus", "Rækkehuse"),
	new BoligType(300, "Ejerlejlighed", "Ejerlejligheder"),
	new BoligType(400, "Fritidsbolig", "Fritidsboliger"),
	new BoligType(500, "Andelsbolig", "Andelsboliger"),
	new BoligType(600, "Landejendom", "Landejendomme"),
	new BoligType(700, "Helårsgrund", "Helårsgrunde"),
	new BoligType(800, "Fritidsgrund", "Fritidsgrunde"),
	new BoligType(900, "Villalejlighed", "Villalejligheder"));
	
function InitBoligTyper(id, value) {
	var element = $$(id);
	if(!element) return;
	var options = element.options;
	if(!options) return;
	options.length = 0;
	for(var i=0;i<BoligTyper.length;i++) {
			options[options.length] = new Option(BoligTyper[i].navn, BoligTyper[i].nummer);
	}
	SetSelect(id, value);
}
	
function SetLink(id, value) {	
	var element = $$(id);
	if(!element) return;
	element.href = value;
}
	
function SetSelect(id, value) {
	var e = $$(id);
	if(!e) return;
	for(var i=0;i<e.options.length;i++) {
		if(e.options[i].value == value)
			e.selectedIndex = i;
	}
}

function SetTitle(value) {
	if(document.title)
		document.title = value;
}

function SetMap(value) {
  $$('GrafMap').innerHTML = value;
}

function setRadioValue(name, value) {
	var inputs = document.getElementsByTagName('input');
	for(var c=0; c<inputs.length; c++){
		if(inputs[c].type == 'radio' && inputs[c].name == name && inputs[c].value == value)
			inputs[c].checked='checked';
	}
}

function getRadioValue(name) {
	var inputs = document.getElementsByTagName('input');
	for(var c=0; c<inputs.length; c++){
		if(inputs[c].type == 'radio' && inputs[c].name == name && inputs[c].checked)
			return inputs[c].value;
	}
}

function FormatDate(value) {
	var retval = '';
	switch(value.substring(4,6)) {
		case "01": retval = 'Januar'; break;
		case "02": retval = 'Februar'; break;
		case "03": retval = 'Marts'; break;
		case "04": retval = 'April'; break;
		case "05": retval = 'Maj'; break;
		case "06": retval = 'Juni'; break;
		case "07": retval = 'Juli'; break;
		case "08": retval = 'August'; break;
		case "09": retval = 'September'; break;
		case "10": retval = 'Oktober'; break;
		case "11": retval = 'November'; break;
		case "12": retval = 'December'; break;
	}
	return retval + " " + value.substring(0, 4);
}

function GetItemType(value, flertal) {
	for(var i=0;i<BoligTyper.length;i++) {
		if(BoligTyper[i].nummer==value) return flertal ? BoligTyper[i].flertal : BoligTyper[i].navn;
	}
	return flertal ? "emner" : "emne";
}

function ChartMouseOver(e,type,b,c,d,y,x,area) {
	var grafInfobox = $$('GrafInfoBox');
	var grafInfoboxPointer = $$('GrafInfoBoxPointer');
	var grafInfoboxTekst = $$('GrafInfoBoxTekst');
	var graf = $$('Graf');
	var pos = e.coords.split(',');
	
	grafInfoboxTekst.innerHTML = FormatInfoBox(e, type, b, c, d, y, x, area);

	var x = parseInt(pos[0]);
	var y = parseInt(pos[1]);
	var r = parseInt(pos[2]);
	if(x+150>graf.width) {
		grafInfobox.style.left=(x+r/2.0-150)+'px';
		grafInfoboxPointer.className = 'hint right';
	} else {
		grafInfobox.style.left=(x+r/2.0-15)+'px';
		grafInfoboxPointer.className = 'hint left';
	}
	grafInfobox.style.bottom=(-y+7)+'px';
	grafInfobox.style.display='block';
	if(x+150>graf.width) {
		grafInfoboxPointer.className = 'hint right';
	} else {
		grafInfoboxPointer.className = 'hint left';
	}
}

function FormatInfoBox(e, type, b, c, d, y, x, area) {
  var text = "";
	switch(type) {
		case "101":
		case "102":
		case "103":
		  text = FormatDate(x) + '<br/>' +
	           FormatValue(type, y);
	    break;
	  default:
		  text = FormatDate(x) + '<br/>' +
	           area + '<br/>' + 
	           FormatValue(type, y);
			break;
	}

	FormatDate(x) + '<br/>' +
	           area + '<br/>' + 
	           FormatValue(type, y);
	switch(type) {
		case "1":
		case "2":
		case "6":
		case "10":
		  return text + '<br/>' + FormatType(type, c, d, b) + '<br/>';
		case "101":
		case "102":
		case "103":
		  return text;
	}
	return text + " " + GetItemType(b, y != "1").toLowerCase();
}

function FormatType(cType, yType, yCount, iType) {
	if(yType.toLowerCase()=="normal") {
		return "baseret på " + yCount + " " + GetItemType(iType, yCount != "1").toLowerCase();
	} else if(yType.toLowerCase()=="temporary") {
		return "indtil videre";
	} else {
	  return "gennemsnitlig beregnet";
	}
}

function FormatValue(type, y) {
	switch(type) {
		case "1":
		case "10":
		  return y + " kr.";
		case "2":
		  return y + " kr./kvm";
		case "6":
		  return y + " dage";
		case "101":
			return y + " besøgende";
		case "102":
			return y + " emnevisninger";
		case "103":
			return y + " søgninger";
	}
	return y;
}

function ChartMouseOut(e) {
	var infobox = $$('GrafInfoBox');
	infobox.style.display='none';
}

function GoogleAnalytics(side, type, opdatering) {
	var pageTracker = _gat._getTracker("UA-3693702-1");
	pageTracker._initData();
	var page = "www.boligsiden.dk/statistik/";
	if(side) page+= (side + "/");
	var typer = (side == "rangering" ? RangeringTyper : GrafTyper); 
	if(type) {
	  for(var i=0;i<typer.length;i++) {
	    if(typer[i].nummer==type)
			  page += (typer[i].navn + "/");
	  }
	}
	if(opdatering) page += "opdatering/";
	pageTracker._trackPageview(page);
}
