function Quotations(form_name) {
	this.form_name = form_name;
	this.columns = new Array();
	this.tables = new Array();
}
/* Call servlet action */
Quotations.prototype.run = function(a){
		this.extid = parseQueryString(document.location.search).extid;
		if (this.extid){
			tstat("Beregning","Kurslister","Velkommen,Beregning,Kurslister",{'eVar13':this.extid,'prop25':this.extid});	
			json(
				"page",
				{'pageId':419}, 
				bind(this.fill, this)
			);
		}else{
			tstat("Beregning","Kurslister","Velkommen,Beregning,Kurslister",null);	
			thepage.loadPageById(419);
		}
		//thepage.loadPageById(419);
		
		/*clearHighlight();
		setNodeAttribute($$("li[class$=p1]")[0].firstChild, "class", "current_menu");
		setNodeAttribute(getFirstElementByTagAndClassName('ul',null,$$("li[class$=p1]")[0]), "class", "current_menu");
		setNodeAttribute($('pg_385'), "class", "current_submenu");
		thepage.updateLocation("Kurslister", "quotations");*/
		
}
Quotations.prototype.fill = function(result){
	var div = DIV({id:"quot_content"},DIV({id:"page"}));
	replaceChildNodes("mainpage",
		H1({
				'id'	:"mainheader",
				'class'	:"fullheader"
			},
			"Kursliste"
		),
		div
	);
	$("page").innerHTML = result.contents;
	appendChildNodes(div,footer("quotations","Totalkredit.dk - Kurslister"));
	
}
Quotations.prototype.run2 = function(a) {
	this.extid = parseQueryString(document.location.search).extid;
	if (this.extid){
		tstat("Beregning","Kurslister","Velkommen,Beregning,Kurslister",{'eVar13':this.extid,'prop25':this.extid});	
	}else{
		tstat("Beregning","Kurslister","Velkommen,Beregning,Kurslister",null);	
	}
	
	var use_iframe = false; //Do not touch this variable, ask Kamila before you change this, she can kick you (she kick me :( ) there is also a guy with baseball bat :)
	if (use_iframe) {
		replaceChildNodes("mainpage",
			H1({'class':"fullheader"},"Kurslister"),
			IFRAME({
					'id'			:"calc_frame",
					'src'			: "https://eticket96.prod.bec.dk/bxp/kursliste/servlet/KursListeGuest?ViewName=kurslisteGuest&menu=nej",
					'frameBorder'	: 0
			})
		);
	} else {
		json("quotations", {}, bind(this.fill, this));
	}
	clearHighlight();
	setNodeAttribute($$("li[class$=p1]")[0].firstChild, "class", "current_menu");
	setNodeAttribute(getFirstElementByTagAndClassName('ul',null,$$("li[class$=p1]")[0]), "class", "current_menu");
	if (a) {
		setNodeAttribute(a, "class", "current_submenu");
	}		
	thepage.updateLocation("Kurslister", "quotations");
};
Quotations.prototype.fill2 = function(result) {
	this.data = result;
	var div = DIV({id:this.form_name});
	replaceChildNodes("mainpage",
		H1({
				'id'	:"mainheader",
				'class'	:"fullheader"
			},
			"Kurslister"
		),
		div
	);
	appendChildNodes(div,
		H2(
			null,
			this.data.headline
		),
		DIV({
				'class':'contents'
			},
			this.data.contents
		)
	);
	
	for (var i = 0; i < this.data.quotationList.length; i++) {
		var q = this.data.quotationList[i];
		this.tableBody(q,div);
	}
	//additional header row for `BoligXlån uden renteloft (X1-X10)` table.
	insertSiblingNodesBefore(this.tables["5"].childNodes[1].firstChild,
		TR(null,
			TH({
					'class'		:"special",
					'style'		:"border: 0 solid; background: none;"
				},
				null
			),
			TH({
					'colspan'	:3,
					'class'		:"special"
				},
				"Uden afdragfrihed"
			),
			TH({
					'colspan'	:3,
					'class'		:"special"
				},
				"Med afdragfrihed"
			)
		)
	);
	appendChildNodes(div,BR());
	var secondCaption = DIV({'style':"padding: 9px;"});
	secondCaption.innerHTML = result.secondCaption;
	appendChildNodes(div,secondCaption);
	appendChildNodes(div,footer("quotations","Totalkredit.dk - Kurslister"));
	if (!this.extid) {
		toolbox("quotations","Totalkredit.dk - Kurslister");
	}
	checkDefinitions();
	thepage.updateLocation("Kurslister", "quotations");
};
Quotations.prototype.table = function(row) {
	var table = TABLE({'id':"type" + row.laantype});
	this.tables[this.getTableNo(row.laantype)] = table;
	
	appendChildNodes(table,
		CAPTION(
			null,
			this.getTableCaption(row)
		),
		this.tableHeader(
			this.getHeader(row.laantype),
			row.laantype
		),
		TBODY()
	); 
	return table;
};
Quotations.prototype.tableColumnModel = function(type) {
	switch (type) {
	case "3":
		return COLGROUP(null,
			COL({'style':"width: 64px;"}),
			COL({'style':"width: 56px;"}),
			COL({'style':"width: 40px;"}),
			COL({'style':"width: 76px;"}),
			COL({'style':"width: 52px;"}),
			COL({'style':"width: 72px;"}),
			COL({'style':"width: 72px;"}),
			COL({'style':"width: 66px;"})
		);
	}
};
Quotations.prototype.tableHeader = function(list,type) {
	var thead = THEAD();
	var tr = TR();	
	for ( i in list ) {
		appendChildNodes(tr,
			TH({
					'onclick'	:"return showDefinition(this,'" + list[i].title + "');"
				},
				A({
						'href'	:"#",
						'class'	:"dictionary_word"
					},
					list[i].breakOnSpace
						? [list[i].title.split(" ")[0], BR(), list[i].title.split(" ")[1]]
						: list[i].title 
				)
			)
		);
	}
	appendChildNodes(thead,tr);
	
	return [this.tableColumnModel(type),thead];
};
Quotations.prototype.getTableNo = function(type) {
//	switch (type) {
//	// merge quotations in types 2 to 12 into one table
//	case "3":
//		return "3";
//	default: 
		return type;
//	}
};
Quotations.prototype.getTableCaption = function(row) {
	switch (row.laantype) {
	case "5":
		return "BoligXlån uden renteloft (X1-X10)";
	case "3":
		return "BoligXlån med renteloft";
	case "0":
		//since this loan doesn't have a proper loantype, make sure its the right caption
		if (row.laantypeTekst.indexOf("10 års afdragsfrihed")>-1 &&
			row.laantypeTekst.indexOf("Obligationslån")>-1
		){
			return "Obligationslån med 10 års afdragsfrihed";
		}else{
			return row.laantypeTekst;
		}
	default:
		return row.laantypeTekst;
	}
};
Quotations.prototype.tableBody = function(q,div) {
	var table = this.tables[this.getTableNo(q.laantype)];
	if (!table) {
		table = this.table(q);
		appendChildNodes(div,table);
	}
	var tbody = getFirstElementByTagAndClassName("tbody",null,table);
	var tr = TR({
			'class': getElementsByTagAndClassName("tr", null, tbody).length % 2 == 0 
				? 'second' 
				: 'first'
			}
		)
	appendChildNodes(tbody,tr);
	var list = this.getColumns(q);
	for (e in list) {
		var style = (list[e] === "Ja" || list[e] === "Nej" || list[e] === "Valgfri") ? "text-align: center" : "";
		appendChildNodes(tr,TD({'style' : style},list[e]));
	}
};

Quotations.prototype.getHeader = function(q) {
	switch (q) {
	case "0": case "1": case "2":
		return new Array(
			{'title': "Løbetid"},
			{'title': "Pantebrevs- renteprocent"},
			{'title': "Kurs"},
			{'title': "Fondskode"},
			{'title': "Obligations- renteprocent"},
			{'title': "Effektiv rente efter skat"}
		);
	case "5":
		return new Array(
			{'title': "Refinansie- ringsfrekvens"},
			{'title': "Pantebrevs- renteprocent"},
			{'title': "Vægtet kurs", 'breakOnSpace' :true},
			{'title': "Effektiv rente efter skat"},
			{'title': "Pantebrevs- renteprocent"},
			{'title': "Vægtet kurs", 'breakOnSpace' :true},
			{'title': "Effektiv rente efter skat"}
		);
	case "3": 
		return new Array(
			{'title': "Renteloftets løbetid"},
			{'title': "Renteloft"},
			{'title': "Løbetid"},
			{'title': "Indledende afdragsfrihed"},
			{'title': "Kurs"},
			{'title': "Fondskode"},
			{'title': "Pantebrevs- renteprocent"},
			{'title': "Effektiv rente efter skat"}
		);
	}
	return new Array();
}
Quotations.prototype.getColumns = function(q) {
	switch (q.laantype) {
	case "1": case "2": 
		return new Array(
			q.loebetid + " år",
			q.PBRenteUAfdragsfri.toFixed(4),
			q.kurs.toFixed(4),
			q.fondskode,
			q.obligationsrente.toFixed(4),
			q.EFFRenteUAfdragsfri.toFixed(2)
		);
	case "0":
		return new Array(
			q.loebetid + " år",
			q.PBRenteUAfdragsfri.toFixed(4),
			q.kurs.toFixed(4),
			q.fondskode,
			q.obligationsrente.toFixed(4),
			q.EFFRenteMAfdragsfri.toFixed(2)
		);
	case "5":									//BoligXlån uden renteloft (X1-X10)
		var appendref=""
		switch(q.refinansieringsFrekvens.value){
			case 1:
			case 2:
			case 3:
				appendref=" år*";
				break;	
			default:
				appendref=" år ";
				break;
		}
		return new Array(
			q.refinansieringsFrekvens.value + appendref,//Refinansieringsfrekvens
			//Uden afdragfrihed						
			q.PBRenteUAfdragsfri.toFixed(4),		//Pantebrevs- renteprocent
			q.vaegtetKursUAfdragsfrihed.toFixed(4),	//Vægtet kurs
			q.EFFRenteUAfdragsfri.toFixed(2),		//Effektiv rente efter skat
			//Med afdragfrihed	
			q.PBRenteMAfdragsfri.toFixed(4),		//Pantebrevs- renteprocent
			q.vaegtetKursMAfdragsfrihed.toFixed(4),	//Vægtet kurs
			q.EFFRenteMAfdragsfri.toFixed(2)		//Effektiv rente efter skat
		);
	case "3":										//BoligXlån med renteloft
		return new Array(
			q.udloebsAar + " år",					//Renteloftets løbetid
			q.renteloftsProcent.toFixed(4),			//Renteloft
			q.loebetid,								//Løbetid
			q.muligAfdragsfri,						//Indledende afdragsfrihed
			q.kurs.toFixed(4),						//Kurs
			q.fondskode,							//Fondskode
			q.PBRenteUAfdragsfri.toFixed(4),		//Pantebrevs- renteprocent
			q.muligAfdragsfri === 'Ja' 				//Effektiv rente efter skat
				? q.EFFRenteMAfdragsfri.toFixed(2)
				: q.EFFRenteUAfdragsfri.toFixed(2)		
		);
	}
	return new Array();
}
addLoadEvent(function () {
	quotations = new Quotations("quotations_form");
});
