﻿//
// Difko Bestillingsoversigt 
//
var UdbudssidePrefix="/Bestillingsoversigt";
var SalgUdlejningFilterControlName="check139_4";
var KategoriIkonPrefix="/media/ikon_";

var msg_VaelgProspekter="Afkryds venligst et eller flere prospekter";
var msg_GentagRegNr="Du har ændret dit reg.nr eller kontonr. Gentag venligst dit reg.nr.";
var msg_GentagKontonummer="Du har ændret dit reg.nr eller kontonr. Gentag venligst dit kontonummer";

//
// WriteCheckbox
//
function WriteCheckbox(recid, str) {
  var html="<FORM class=bestillingsform name=f"+recid+">";
  html+="<INPUT class=checkbox id=project"+recid+" type=checkbox name=selectproject>";
  html+="<input type=hidden name=str"+recid+" value=\""+str+"\"></FORM>";
  document.write(html);
}

//
// GemKategorier
//
// Gemmer en streng, der indeholder de valgte kategorier for prospektet
// Bruges i forbindelse med funktionen BestilProspekt
var ProspektKategorier="";
function GemKategorier(str) {
  ProspektKategorier=str;
}

//
// BestilProspekt
// 
// Bemærk: parenttitle er titlen på den nuværende sides overside ({system.misc.parent.title}) 
// hvilket bruges til at gå til den rigtige bestillingsside (som skal have en tilsvarende 
// genvej, fx "/BestillingsoversigtSkibe")
function BestilProspekt(recid, parenttitle) {
  parenttitle=parenttitle ? parenttitle : "";
  // remove slashes
  parenttitle=parenttitle.replace("/", "");
  var str=UdbudssidePrefix+parenttitle+"?projectid="+recid;
  if (ProspektKategorier) {
    // Kategoriernes ID'er hentes fra Bestillingsoversigten (side 139), der er indlejret 
    // og skjult vha. et sidelayout. Bestillingsoversigten indeholder en SELECT boks med
    // kategorierne... 

    // remove spaces after separators
    var categories=ProspektKategorier.replace(/, /g,",");
    var idstr="";
    var pageId="";
    if (categories) {
	// find den sidste form på siden, der starter med "rediger" og har den 
	// rigtige filtercontrol (vi kender nemlig ikke id på den indlejrede side)
	for (var i=0; i<document.forms.length; i++) {
	  if (document.forms[i][SalgUdlejningFilterControlName] && document.forms[i].name && document.forms[i].name.indexOf("rediger")==0) {
	    obj=document.forms[i][SalgUdlejningFilterControlName];
	    pageId=document.forms[i].name.substr("rediger".length);
	  }
	}
	if (obj && obj.options) {
	  // hent kategoriernes ID fra filterkontrollen (et sammensat filter)
	  categories=","+categories+",";
	  for (var i=0; i<obj.options.length; i++) {
	    if (categories.indexOf(","+obj.options[i].text+",")!=-1) {
		idstr+=(idstr?",":"")+obj.options[i].value;
	    }
	  }
	}
  
	str+="&"+SalgUdlejningFilterControlName+"="+idstr;
	str+="&doshow"+pageId+"=1";
    }
  }
  location.href=str;
}


//
// BestilValgteProspekter
//
function BestilValgteProspekter() {
  var str="", f, obj, id;
  for (var i=0; i<document.forms.length; i++) {
    f=document.forms[i];
    obj=f["selectproject"];
    if (f.className=="bestillingsform" && obj && obj.checked) {
	id=f.name.substr(1);
	str+=f["str"+id].value + "\n";
    }
  }
  if (str) {
    f=document.submitform;
    f["urlprospekter"].value=str;
    f.submit();
  } else {
    alert(msg_VaelgProspekter);
  }
}

// 
// Afkrydsprojekt
// 
// Hvis "projectid" er angivet i URL'en, afkrydses det tilsvarende 
// afkrydsningsfeltet 
// Hvis "categories" er angivet i URL'en, betyder det at vi skal foretage
// en søgning (bruges på salg/udlejning). Kategorierne skal være komma-
// separeret uden mellemrum efter kommaet. 
function AfkrydsProjekt(pageId) {
  var recid=GetParam("projectid");
  var f=document.forms["f"+recid];
  if (recid && f) {
    // afkryds feltet
    var obj=f["project"+recid];
    if (obj) {
	obj.checked=true;
    }
  }
}


// 
// GetParam
// 
// Returner en variabel fra URL'en
function GetParam(paramname) {
  var reg=new RegExp("[?&]"+paramname+"=([^&]*)");
  var m=location.href.match(reg);
  if (m && m[1]) {
    return m[1];
  }
  return null;
}

//
// GetElem
//
// Returnerer et objekt på baggrund af objektets ID
function GetElem(elemid) {
  if (document.all) {
    return document.all[elemid];
  } else if (typeof document.getElementById=="function") {
    return document.getElementById(elemid);
  }
  return null;
}

// 
// VisKategoriIkon
//
// Funktionen bruges til at vise et ikon i stedet for navnet på en kategori
function VisKategoriIkon(str) {
  if (!str) { str=""; }
  var imgname=str.toLowerCase();
  imgname=imgname.replace("æ","ae");
  imgname=imgname.replace("ø","oe");
  imgname=imgname.replace("å","aa");
  var href=KategoriIkonPrefix+imgname+".gif";
  var html="<img src='"+href+"' alt='"+str+"'>";
  document.write(html);
}


//
// InitPassword
//
// Funktionen laver et tilfældigt password (fx "h54004fz"), forudfylder password-
// felterne på siden og viser desuden password'et som tekst på siden
//
function InitPassword(pageid) {
  var frm=document.forms["rediger"+pageid];
  var objinput=frm ? frm.password : null;
  var objinput2=frm ? frm.repeatpassword : null;
  var objspan=GetElem("autogenpw");
  var pw=GenerateRandomPassword();
  
  if (objinput) {
    objinput.value = pw;
    if (objinput2) {
	objinput2.value = pw;
    }
    if (objspan) {
	objspan.innerHTML = pw;
    }
  }
}

function GenerateRandomPassword() {
  var pw=GetRandomLetters(1)+GetRandomNumbers(5)+GetRandomLetters(2);
  return pw;
}

function GetRandomNumbers(count) {
  return GetRandomLetters(count, 48, 57);
}

function GetRandomLetters(count, min, max) {
  var pw="";
  if (!min) { min=97; }  // 97 svarer til bogstavet "a"
  if (!max) { max=122; } // 122 svarer til bogstavet "z"
  for (i=0; i<count; i++) { 
    pw+=String.fromCharCode(Math.round(Math.random()*(max-min))+min);
  }
  return pw;
}


// 
// CheckKontonumre
//
// Funktionen gemmer kontonr. og reg.nr. til senere (for at kunne checke, om 
// de er blevet ændret)
var prevRegNr, prevKontonr;
function InitCheckKontonumre() {
  // gem nuværende værdier
  prevKontonr=document.Investor_stamdata.bank_kontonr.value;
  prevRegNr=document.Investor_stamdata.bank_reg_nr.value;
}

// 
// CheckKontonumre
//
// Funktionen checker om der er indtastet nyt reg.nr. og/eller kontonr. 
// i forbindelse med ændring af stamoplysninger
function CheckKontonumre() {
  var kontonr=document.Investor_stamdata.bank_kontonr.value;
  var regNr=document.Investor_stamdata.bank_reg_nr.value;
  var kontonr_kontrol=document.Investor_stamdata.bank_kontonr_kontrol.value;
  var regNr_kontrol=document.Investor_stamdata.bank_reg_nr_kontrol.value;
  
  if (regNr==regNr_kontrol && kontonr==kontonr_kontrol) {
    // både reg.nr. og kontonr. er gentaget korrekt
    return true;
  }
  if (regNr==prevRegNr && kontonr==prevKontonr && !regNr_kontrol && !kontonr_kontrol) {
    // hverken reg.nr. eller kontonr. er ændret (og der er ikke indtastet noget i 
    // "gentag reg.nr/kontonr."
    return true;
  }
  
  var obj;
  if (regNr!=regNr_kontrol || !regNr_kontrol) {
    alert(msg_GentagRegNr);
    obj=document.Investor_stamdata.bank_reg_nr_kontrol;
  } else if (kontonr!=kontonr_kontrol || !kontonr_kontrol) {
    alert (msg_GentagKontonummer);
    obj=document.Investor_stamdata.bank_kontonr_kontrol;
  }
  if (obj && obj.select) {
    obj.select();
  }
  
  return false;
}

//
// Function to show nav1 text in site layout
//
function WriteMenuItemText() {
 // find text in SPAN elements with merge fields
 var defaulttitle=GetElem("defaulttitle");
 var obj=GetElem("grandparenttitle");
 if (!obj || !obj.innerHTML) {
  obj=GetElem("parenttitle");
 }
 
 if (obj && obj.innerHTML && obj.style) {
  // found
  obj.style.display="inline";

  // hide default menu text
  if (defaulttitle && defaulttitle.style) {
   defaulttitle.style.display="none";
  }
 } 
}

function AddDays(startdate, numdays) {
  var day=startdate.getDate();
  var d=new Date(startdate);
  return new Date(d.setDate(day+numdays));
}

// Windmill
function ShowWindmill (WindmillId) {
  var frm,d,m,y,m2,y2,d3,m3,y3;
  frm=document.getElementById ("windmillframe");
  var dt=new Date();
  y=dt.getYear();
  if (y<200) {
    y=y+1900;
  }
  m=dt.getMonth()+1;
  d=dt.getDate();
  y2=y;
  m2=m+1;
  if (m2>12) {
    m2=1;
    y2=y2+1;
  }
  dt2=AddDays (dt,-1);
  y3=dt2.getYear();
  if (y3<200) {
    y3=y3+1900;
  }
  m3=dt2.getMonth()+1;
  d3=dt2.getDate();
  frm.src='/page1057.aspx?doshow1057=1&filtercontrol10571='+WindmillId+'&fromdate=1-1-'+y+'&todate=31-12-'+y+'&frommonth=1-'+m+'-'+y+'&tomonth=1-'+m2+'-'+y2+'&frommonthlastyear=1-'+m+'-'+(y-1)+'&tomonthlastyear=1-'+m2+'-'+(y2-1)+'&today='+d3+'-'+m3+'-'+y3;
}

function Windmill_ApplyFilter() {
  var d,m,y,m2,y2,dt,WindmillId;
  d=Number (document.getElementById ('day').options [document.getElementById ('day').options.selectedIndex].value);
  m=Number (document.getElementById ('month').options [document.getElementById ('month').options.selectedIndex].value);
  y=Number (document.getElementById ('year').options [document.getElementById ('year').options.selectedIndex].value);
  var dt=new Date();
  if (d==0) {
    d=dt.getDate();
  }
  if (m==0) {
    m=dt.getMonth()+1;
  }
  if (y==0) {
    y=dt.getYear();
  }
  if (y<200) {
    y=y+1900;
  }
  y2=y;
  m2=m+1;
  if (m2>12) {
    m2=1;
    y2=y2+1;
  }
  WindmillId=location.href.split ("&fromdate") [0].split ("filtercontrol10571=") [1];
  location.href='/page1057.aspx?doshow1057=1&filtercontrol10571='+WindmillId+'&fromdate=1-1-'+y+'&todate=31-12-'+y+'&frommonth=1-'+m+'-'+y+'&tomonth=1-'+m2+'-'+y2+'&frommonthlastyear=1-'+m+'-'+(y-1)+'&tomonthlastyear=1-'+m2+'-'+(y2-1)+'&today='+d+'-'+m+'-'+y;
}

function TableManipulator(tableID)
{
	this.SubmitButton = null;
	this.Table = null;
	this.Type = null;
	this.Year = null;

	this.Init = function()
	{
		this.Table = document.getElementById(tableID);
		this.SetType();
		this.FillCompanyList();
		this.FillDateList();
		this.SetTableElementsStatus("readonly",true);
		this.SetRowElementsStatus(1337,"readonly","true")
		this.SetDefaultDate(this.Year,"txt_1337_4");
		Tangora.Events.AddHandler(document.getElementById("modeltype"),"onchange",this.TypeListOnChangeHandler);

		var btnSubmit = document.getElementById("submit_container").childNodes[0];
		btnSubmit.disabled = true;
		btnSubmit.oldclick = btnSubmit.onclick;
		btnSubmit.onclick = this.SubmitOnClick;
		this.SubmitButton = btnSubmit;
	}

	this.SetDefaultDate = function(year,elmID)
	{
		var d = new Date();
		var date = this.FormatNumber(d.getDate()) + "-" + this.FormatNumber(d.getMonth()+1) + "-" + year;

		document.getElementById(elmID).value = date;
	}

	this.FormatNumber = function(n)
	{
		return (n > 9 ? n : '0' + n);
	}

	this.FillCompanyList = function()
	{
		var cList = document.getElementById("ddl_1337_1");
		var txt = "<img src='/media/indicator_white.gif' alt='Vent venligst' style='vertical-align: middle; margin-right: 8px;' />Vent...";
		Util.AjaxHandlers.LoadComboboxContent('selskab','',cList,0,this.CallBackFunction,txt);

		cList.onchange = this.CompanyListOnChange;
	}

	this.FillDateList = function()
	{
		this.Year= new Date().getFullYear();
		var dList = document.getElementById("yearlist");
		dList.onchange = this.DateOnChange;
		dList.onkeyup = this.DateOnChange;
		Util.AjaxHandlers.LoadComboboxContent("skatteaar","",dList,this.Year,null,"<img src='/media/indicator_white.gif' alt='Vent venligst' style='vertical-align: middle; margin-right: 8px;' />...");
	}

	this.DateOnChange = function()
	{
		var val = this.options[this.selectedIndex].value;
		if(tm.Year == val) return;

		tm.Year = val;
		tm.SetDefaultDate(val,"txt_1337_4");
		tm.UpdateRows();
	}

	this.UpdateRows = function()
	{
		var rows = this.Table.rows;

		for(var i = 1; i < rows.length-2;i++)
		{
			document.getElementById("ddl_" + i + "_1").onchange();
		}
	}

	this.CallBackFunction = function(select, doc)
	{
		select.style.width = "100%";
		
		var option = document.createElement("option");
		option.value = "0";
		option.innerHTML = "Vælg selskab";
		select.insertBefore(option,select.options[0]);
		select.selectedIndex = 0;

		if(Tangora.Browser.IE && Tangora.Browser.Version.indexOf("6.")>-1) window.setTimeout("document.getElementById('" + select.id + "').selectedIndex=0;",30);
	}

	this.SetType = function(elm)
	{
		var elm = document.getElementById("modeltype");
		var selIndex = elm.selectedIndex;

		if(selIndex > -1)
		{
			this.Type = elm.options[selIndex].value;
		}
	}

	this.TypeListOnChangeHandler = function()
	{
		tm.SetType();
		tm.SetTableElementsStatus("readonly",true);
		tm.SetRowElementsStatus(1337,"readonly","true");
	}

	this.SaveRow = function()
	{
		var ddlComp = document.getElementById("ddl_1337_1");
		var comp = ddlComp.options[document.getElementById("ddl_1337_1").selectedIndex].value;

		if(comp != "0")
		{
			var txtAmount = document.getElementById("txt_1337_2");
			var amount = txtAmount.value;
			var txtPrice = document.getElementById("txt_1337_3");
			var price = txtPrice.value;
			var date = document.getElementById("txt_1337_4").value;
			var txtBal = document.getElementById("txt_1337_5");
			var bal = txtBal.value;
			var txtWithD = document.getElementById("txt_1337_6");
			var withD = txtWithD.value;
			var txtAccount = document.getElementById("txt_1337_7");
			var account = txtAccount.value;
			var chkExpand = document.getElementById("chk_1337_8");
			var expand = chkExpand.checked;
			var chkExpire = document.getElementById("chk_1337_9");
			var expire = chkExpire.checked;

			ddlComp.selectedIndex = 0;
			txtAmount.value = "";
			txtPrice.value = "";
			txtBal.value = "";
			txtWithD.value = "";
			txtAccount.value = "";
			chkExpand.checked = false;
			chkExpire.checked = false;

			this.AddRow(comp,amount,price,date,bal,withD,account,expand,expire);
			this.ClearEditRows();
		}
	}

	this.AddRow = function(strComp, strAm, strPrice, strDate, strBal, strWith, strAcc, strExp, strExpi)
	{
		var tr = document.createElement("tr");
		tr.className = "no_edit_mode";
		tr.onclick = this.RowClickHandler;
		tr.onkeydown = function(event) {var e = event || window.event;tm.EditRowOnKeyDown(this,e);};
		tr.title = "Klik for at tilpasse";
		var rowIndex = this.Table.rows.length - 2;
		
		tr.appendChild(this.CreateCell("list",strComp,0,rowIndex,"left"));
		tr.appendChild(this.CreateCell("text",strAm,1,rowIndex));
		tr.appendChild(this.CreateCell("text",strPrice,2,rowIndex));
		tr.appendChild(this.CreateCell("text",strDate,3,rowIndex));
		tr.appendChild(this.CreateCell("text",strBal,4,rowIndex));
		tr.appendChild(this.CreateCell("text",strWith,5,rowIndex));
		tr.appendChild(this.CreateCell("text",strAcc,6,rowIndex));
		tr.appendChild(this.CreateCell("check",strExp,7,rowIndex,"center"));
		tr.appendChild(this.CreateCell("check",strExpi,8,rowIndex,"center"));

		var td = document.createElement("td");
		td.className = "section center_justify";

		var a = document.createElement("a");
		a.href = "#";
		//a.rowIndex = rowIndex;
		a.oldclick = function(event) { var e = event || window.event; tm.ClearEditRow(tm.GetRowIndex(this), e); return false};
		a.innerHTML = "<img src='/media/ok_inactive.gif' alt='OK' style='border:none;' />";
		td.appendChild(a);

		a = document.createElement("a");
		a.href = "#";
		//a.rowIndex = rowIndex;
		a.onclick = function(event) { var e = event || window.event; tm.RemoveRow(tm.GetRowIndex(this), e); return false};
		a.innerHTML = "<img src='/media/delete.gif' alt='Slet' style='border:none;' />";
		td.appendChild(a);
		
		tr.appendChild(td);

		this.GetTbody().insertBefore(tr,document.getElementById("spacer_row"));

		this.SetRowElementsStatus(rowIndex,"readonly","true")

		this.SubmitButton.disabled = false;
	}

	this.GetRowIndex = function(a)
	{
		return (a.parentNode.parentNode.rowIndex);
	}

	this.RemoveRow = function(rowIndex,e)
	{
		var elm = tm.Table.rows[rowIndex].cells[0].childNodes[0];
		var comp = elm.options[elm.selectedIndex].innerHTML;

		if(window.confirm("Er du sikker på, at du vil fjerne " + comp + " ?"))
		{
			tm.Table.deleteRow(rowIndex);
			tm.ClearEditRows();

			var elms = document.getElementById("investor_info").getElementsByTagName("input");
			for(var i = 0; i < elms.length; i++)
			{
				if(elms[i].type == "text") elms[i].value = "";
			}

			if(tm.Table.rows.length==3) this.SubmitButton.disabled = true;
		}
		this.CancelBubble(e);
	}

	this.GetTbody = function()
	{
		var tr = null;

		if(Tangora.Browser.IE)
		{
			tr = this.Table.firstChild;
		}
		else
		{
			for(var i = 0; i < this.Table.childNodes.length; i++)
			{
				if(this.Table.childNodes[i].nodeType != 3)
				{
					tr = this.Table.childNodes[i];
					break;
				}
			}
		}

		return tr;
	}

	this.EditRowOnKeyDown = function(elm,e)
	{
		var k = e.keyCode || e.which;
		var se = e.srcElement || e.target;
		var sTag = se.tagName.toLowerCase();

		if(k == 13)
		{
			tm.ClearEditRow(elm.rowIndex);
			var inputs = elm.getElementsByTagName("input");

			for(var i = 0; i < inputs.length; i++)
			{
				inputs[i].blur();
			}
			tm.CancelBubble(e);
		}
		else if(k == 38 && sTag != "select")
		{
			var focusElm = null;

			if(elm.rowIndex > 1)
			{
				focusElm = (sTag != "td") ? se.parentNode.parentNode.previousSibling.cells[se.parentNode.cellIndex].childNodes[0] : se.parentNode.previousSibling.cells[1].childNodes[0];
				tm.SetRowEditMode(elm.previousSibling,focusElm);
			}
			else
			{
				focusElm = (sTag != "td") ? tm.Table.rows[tm.GetLastRowIndex()].cells[se.parentNode.cellIndex].childNodes[0] : tm.Table.rows[tm.GetLastRowIndex()].cells[1].childNodes[0];
				tm.SetRowEditMode(tm.Table.rows[tm.GetLastRowIndex()],focusElm);
			}
			tm.CancelBubble(e);
		}
		else if(k == 40 && sTag != "select")
		{
			if(elm.rowIndex < tm.GetLastRowIndex())
			{
				focusElm = (sTag != "td") ?se.parentNode.parentNode.nextSibling.cells[se.parentNode.cellIndex].childNodes[0] : se.parentNode.nextSibling.cells[1].childNodes[0];

				tm.SetRowEditMode(elm.nextSibling,focusElm);
			}
			else
			{
				focusElm = (sTag != "td") ? tm.Table.rows[1].cells[se.parentNode.cellIndex].childNodes[0] : tm.Table.rows[1].cells[1].childNodes[0];

				tm.SetRowEditMode(tm.Table.rows[1],focusElm);
			}
			tm.CancelBubble(e);
		}
		else if(k == 46 && e.ctrlKey)
		{
			tm.RemoveRow(elm.rowIndex,e);
			tm.CancelBubble(e);
		}

	}

	this.GetLastRowIndex = function()
	{
		return (document.getElementById("spacer_row").rowIndex-1);
	}

	this.HasRows = function()
	{
		return (this.Table.rows.length > 3) ? true : false;
	}

	this.AddRowOnKeyDown = function(e)
	{
		var k = e.keyCode || e.which;

		if(k == 13)
		{
			tm.SaveRow();
			tm.CancelBubble(e);
		}
	}

	this.CreateCell = function(type,val,cellID,rowID,justify)
	{
		cellID++;
		var td = document.createElement("td");
		var elm = document.createElement("input");
		var span = document.createElement("span");
		span.className = "section value_wrapper";
		span.id = "value_wrapper_" + rowID + "_" + cellID;

		switch(type)
		{
			case "text":
				elm.id = "txt_" + rowID + "_" + cellID;
				elm.value = Formatters.AddSeperators(val);
				elm.className = "textbox";
				td.appendChild(elm);
				break;
			case "check":
				elm.type = "checkbox";
				elm.id = "chk_" + rowID + "_" + cellID;
				elm.checked = (val == 1 || val == true) ? true : false;
				elm.className = "checkbox";
				elm.onclick = this.CheckBoxOnClickHandler;
				td.appendChild(elm);

				span.innerHTML = (val == "1" || val == true) ? "1" : "0";
				td.appendChild(span);
				break;
			case "list":
				Tangora.DOM.CloneElement("ddl_1337_1",td);
				elm = td.firstChild;
				elm.id = "ddl_" + rowID + "_" + cellID;
				elm.onchange = this.CompanyListOnChange;
				
				for(var i = 0; i < elm.options.length; i++)
				{
					if(elm.options[i].value == val)
					{
						elm.options[i].selected = true;

						span.innerHTML = elm.options[i].innerHTML;
						break;
					}
				}

				td.appendChild(span);

				break;
		}

		if(justify)
		{
			td.className = justify + "_justify";
		}

		return td;
	}

	this.CheckBoxOnClickHandler = function()
	{
		var elm = this.nextSibling;

		if(elm) elm.innerHTML = (this.checked) ? "1" : "0";
	}

	this.SetTableElementsStatus = function(status,state)
	{
		for(var i = 1; i < this.Table.rows.length; i++)
		{
			if(this.Table.rows[i].id == "spacer_row")
			{
				break;
			}

			this.SetRowElementsStatus(i,status,state);
		}
	}

	this.SetRowElementsStatus = function(rowIndex,status,state)
	{
		this.SetType();

		if(this.Type == "1")
		{
			this.SetElementStatus(document.getElementById("txt_" + rowIndex + "_5"),status,state);
			this.SetElementStatus(document.getElementById("txt_" + rowIndex + "_6"),status,state);
			this.SetElementStatus(document.getElementById("txt_" + rowIndex + "_7"),status,state);
			this.SetElementStatus(document.getElementById("chk_" + rowIndex + "_9"),status,state);

			this.SetElementStatus(document.getElementById("chk_" + rowIndex + "_8"),status,!state);
		}
		else if(this.Type == "2")
		{
			this.SetElementStatus(document.getElementById("chk_" + rowIndex + "_8"),status,state);

			this.SetElementStatus(document.getElementById("txt_" + rowIndex + "_5"),status,!state);
			this.SetElementStatus(document.getElementById("txt_" + rowIndex + "_6"),status,!state);
			this.SetElementStatus(document.getElementById("txt_" + rowIndex + "_7"),status,!state);
			this.SetElementStatus(document.getElementById("chk_" + rowIndex + "_9"),status,!state);
		}
	}

	this.SetElementStatus = function(elm,status,state)
	{
		if(elm)
		{
			switch(status)
			{
				case "disabled":
					elm.disabled = state;
					break;
				case "readonly":
					if(elm.type == "checkbox")
					{
						elm.disabled = state;
					}
					else
					{
						elm.readOnly = state;
					}
					break;
			}
		}
	}

	this.ClearEditRows = function()
	{
		var rows = Tangora.DOM.GetCollectionByClassName("model_list","tr","edit_mode");

		for(var i = 0; i < rows.length; i++)
		{
			this.ClearEditRow(i);
		}
	}

	this.ClearEditRow = function(i,e)
	{
		this.Table.rows[i].className = "no_edit_mode";

		var inputs = this.Table.rows[i].getElementsByTagName("input");

		for(var x = 0; x < inputs.length; x++)
		{
			if(inputs[x].type.toLowerCase() == "text")
			{
				inputs[x].value = Formatters.AddSeperators(inputs[x].value);
			}
		}
		
		var a = this.Table.rows[i].cells[this.Table.rows[i].cells.length-1].childNodes[0];
		
		if (a)
		{
			var img = a.childNodes[0];
			if(img)
			{
				img.src ="/media/ok_inactive.gif";
			}
		}

		this.CancelBubble(e);
	}

	this.RowClickHandler = function()
	{
		if (this.className == "edit_mode") return;
		tm.SetRowEditMode(this);
	}

	this.SetRowEditMode = function(row,focusElm)
	{
		tm.ClearEditRows();

		var exp = document.getElementById("chk_" + row.rowIndex + "_8");
		var exp_2 = exp.nextSibling;
		if(exp && exp_2) exp.checked = (exp_2.innerHTML == "1") ? true : false;

		var expi = document.getElementById("chk_" + row.rowIndex + "_9");
		var expi_2 = expi.nextSibling;
		if(expi && expi_2) expi.checked = (expi_2.innerHTML == "1") ? true : false;

		row.className = "edit_mode";

		var a = row.cells[row.cells.length-1].childNodes[0];
		a.onclick = a.oldclick;

		var img = a.childNodes[0];

		if(img)
		{
			img.src = "/media/ok.gif";
		}

		if(focusElm)
		{
			focusElm.focus();
			focusElm.select();
		}
	}

	this.CompanyListOnChange = function()
	{
		var val = this.options[this.selectedIndex].value;
		var v2 = "";
		var v3 = "";
		var v5 = "";
		var v6 = "";
		var v7 = "";

		if(val != "0")
		{
			var arr = Util.AjaxHandlers.GetValueArray("skattetal","&selskabsid=" + this.options[this.selectedIndex].value + "&type=" + tm.Type + "&aar=" + tm.Year);

			v2 = "1";
			v3 = arr[0].toString();
			v3 = (v3 != "") ? v3 : "0";
			v3 = Formatters.AddSeperators(v3);
			v5 = arr[1].toString();
			v5 = (v5 != "") ? v5 : "0";
			v5 = Formatters.AddSeperators(v5);
			v6 = arr[2].toString();
			v6 = (v6 != "") ? v6 : "0";
			v6 = Formatters.AddSeperators(v6);
			v7 = arr[3].toString();
			v7 = (v7 != "") ? v7 : "0";
			v7 = Formatters.AddSeperators(v7);

			var elm = this.nextSibling;
			if(elm) elm.innerHTML = this.options[this.selectedIndex].innerHTML;
		}

		var rowIndex = this.id.substring(this.id.indexOf("_")+1,this.id.lastIndexOf("_"));
		document.getElementById("txt_" + rowIndex + "_2").value = v2;
		document.getElementById("txt_" + rowIndex + "_3").value = v3;
		document.getElementById("txt_" + rowIndex + "_5").value = v5;
		document.getElementById("txt_" + rowIndex + "_6").value = v6;
		document.getElementById("txt_" + rowIndex + "_7").value = v7;
	}

	this.CancelBubble = function(evt)
	{
		var e = evt || window.event;
		if (!e) return;
		e.cancelBubble = true;
		e.returnValue = false;
		if (e.stopPropagation) e.stopPropagation();
		return false;
	}

	this.GetXML = function(objectName)
	{
		var xml = "<" + objectName + " year=\"" + this.Year + "\" type=\"" + this.Type + "\">";
		var rows = this.Table.rows;
		var name = objectName.substring(0,objectName.length-1);

		for(var i = 1; i < rows.length-2; i++)
		{
			var compid = document.getElementById("ddl_" + i + "_1").options[document.getElementById("ddl_" + i + "_1").selectedIndex].value;
			var am = document.getElementById("txt_" + i + "_2").value;
			var price = document.getElementById("txt_" + i + "_3").value;
			var date = document.getElementById("txt_" + i + "_4").value;
			var bal = document.getElementById("txt_" + i + "_5").value;
			var withd = document.getElementById("txt_" + i + "_6").value;
			var acc = document.getElementById("txt_" + i + "_7").value;
			//var exp = document.getElementById("chk_" + i + "_8").checked;
			//var expi = document.getElementById("chk_" + i + "_9").checked;
			var exp = (document.getElementById("value_wrapper_" + i + "_8").innerHTML == "1") ? true : false;
			var expi = (document.getElementById("value_wrapper_" + i + "_9").innerHTML == "1") ? true : false;

			xml += this.CreateXMLObject(name,compid,am,price,date,bal,withd,acc,exp,expi);
		}

		return xml + "</" + objectName + ">";
	}

	this.CreateXMLObject = function(name,strComp,strAm,strPrice,strDate,strBal,strWith,strAcc,strExp,strExpi)
	{
		var xml = "<" + name + " ";

		xml += "selskabsid=\"" + strComp + "\"";
		xml += " antal=\"" + strAm + "\"";
		xml += " pris=\"" + strPrice + "\"";
		xml += " dato=\"" + strDate + "\"";
		xml += " afskrivsaldo=\"" + strBal + "\"";
		xml += " fradragskonto=\"" + strWith + "\"";
		xml += " underskudskonto=\"" + strAcc + "\"";
		xml += " udvidet=\"" + strExp + "\"";
		xml += " ophoer=\"" + strExpi + "\"";

		return xml + "/>";
	}

	this.SaveXML = function(destElm)
	{
		document.getElementById(destElm).value = this.GetXML("models");
	}

	this.SubmitOnClick = function()
	{
		fs.ShowWaitText();
		tm.SaveXML("idxml");
		this.oldclick();
	}
}

function GetInvestor()
{
	this.ValueArray = null;
	this.InvestorInput = null;

	this.Init = function()
	{
		var btn = document.getElementById("btn_find_investor");
		this.InvestorInput = document.getElementById("idinvestornr");

		if(btn)
		{
			btn.onclick = this.ButtonClickHandler;
		}

		Tangora.Events.AddHandler(document.getElementById("modeltype"),"onchange",this.ClearInvestorInfo);
	}

	this.SetValues = function()
	{
		if(this.ValueArray)
		{
			fs.HideNoInvestorText();
			var table = document.getElementById("investor_info");
			var inputs = Tangora.DOM.GetCollection(table,"input");
			var x = 1;

			for(var i = 2; i < inputs.length-1; i++)
			{
				if(inputs[i].type == "text")
				{
					inputs[i].value = this.ValueArray[x];
					x++;
				}
			}
		}
		else
		{
			this.ClearValues();
			fs.ShowNoInvestorText();
		}
	}

	this.ClearValues = function()
	{
		var table = document.getElementById("investor_info");
		var inputs = Tangora.DOM.GetCollection(table,"input");

		for(var i = 2; i < inputs.length-1; i++)
		{
			if(inputs[i].type == "text")
			{
				inputs[i].value = "";
			}
		}
	}

	this.ButtonClickHandler = function()
	{
		gi.ValueArray = Util.AjaxHandlers.GetValueArray("investordata","&investorid=" + gi.InvestorInput.value);
		gi.SetValues();
	}

	this.ClearInvestorInfo = function()
	{
		var table = document.getElementById("investor_info");
		var inputs = Tangora.DOM.GetCollection(table,"input");

		for(var i = 1; i < inputs.length; i++)
		{
			if(inputs[i].type == "text")
			{
				inputs[i].value = "";
			}
		}
	}
}

function FormSubmit(fName, sessionID)
{
	this.iFrame = null;
	this.Form = null;
	this.WaitText = null;
	this.DownloadText = null;
	this.NoInvestorText = null;

	this.Init = function()
	{
		this.RenderWaitText();
		this.RenderDownloadText();
		this.RenderNoInvestorText();
		this.RenderIframe();

		this.Form = eval("document.forms." + fName);
		this.Form.target = this.iFrame.id;
		//this.Form.onsubmit = this.Disabled;
	}
	
	this.Disabled = function()
	{
		return false;
	}

	this.RenderWaitText = function()
	{
		this.WaitText = document.createElement("div");
		this.WaitText.id = "wait_text";
		this.WaitText.innerHTML = "<img src='/media/indicator_white.gif' alt='Vent venligst' style='vertical-align: middle; margin-right: 8px;' />Dokumentet genereres - vent venligst ...";
		this.WaitText.style.display = "none";
		document.getElementById("status_text").appendChild(this.WaitText);		
	}

	this.RenderNoInvestorText = function()
	{
		this.NoInvestorText = document.createElement("div");
		this.NoInvestorText.id = "noinvestor_text";
		this.NoInvestorText.innerHTML = "Det indtastede investornummer blev ikke fundet.";
		this.NoInvestorText.style.display = "none";
		document.getElementById("status_text").appendChild(this.NoInvestorText);		
	}

	this.RenderDownloadText = function()
	{
		this.DownloadText = document.createElement("a");
		this.DownloadText.id = "download_text";
		this.DownloadText.style.display = "none";
		this.DownloadText.href = location.protocol+"//"+location.host+"/difkoexcel/custom/" + sessionID + ".xls?key=" + this.GetRandomKey();
		this.DownloadText.innerHTML = "Åben dokumentet";
		this.DownloadText.target= "_blank";
		this.DownloadText.onclick = function() {this.style.display='none';};
		document.getElementById("status_text").appendChild(this.DownloadText);
	}

	this.RenderIframe = function()
	{
		var div = document.createElement("div");
		var iframe = "<iframe name='hidden_iframe' id='hidden_iframe' src='/page1162.aspx' style='display:none;'></iframe>";
		div.innerHTML = iframe;
		document.body.appendChild(div);

		this.iFrame = document.getElementById("hidden_iframe");
		this.iFrame.loads = 0;
		Tangora.Events.AddHandler(this.iFrame,"onload",this.IframeOnLoadHandler);
	}

	this.ShowWaitText = function()
	{
		this.DownloadText.style.display = "none";
		this.WaitText.style.display = "block";
	}

	this.HideWaitText = function()
	{
		this.WaitText.style.display = "none";
	}

	this.ShowNoInvestorText = function()
	{
		this.NoInvestorText.style.display = "block";
	}

	this.HideNoInvestorText = function()
	{
		this.NoInvestorText.style.display = "none";
	}

	this.StreamFile = function()
	{
		this.DownloadText.style.display = "inline";
	}

	this.IframeOnLoadHandler = function()
	{
		fs.iFrame.loads++;

		if(fs.iFrame.loads > 1)
		{
			fs.HideWaitText();
			fs.StreamFile();
			fs.iFrame.loads = 1;
			document.getElementById("submit_container").childNodes[0].disabled = false;
		}
	}

	this.GetRandomKey = function()
	{
		var rnd = Math.random()*10000;
		return rnd.toString().replace(".","");
	}
}

Formatters = new function()
{
	this.AddSeperators = function(val)
	{
		if(val.indexOf(".") == -1)
		{
			var n = new Number(val);

			if(isNaN(n)) return val;

			var isNeg = val.charAt(0)=="-";

			if (isNeg)
			{
				val=val.split("-")[1];
			}

			var s = new String(val);
			var fractions = s.split(",");
			var hasDecs = false;

			hasDesc = (fractions.length==1);

			var ns = ""
		
			for (var i=0;i<fractions[0].length; i++)
			{
				if (((i+1) % 3==0) && ((i+1)<fractions[0].length))
				{
					ns="."+fractions[0].charAt(fractions[0].length-i-1)+ns;
				}
				else
				{
					ns=fractions[0].charAt(fractions[0].length-i-1)+ns;
				} 
			}

			if (isNeg)
			{
				ns="-"+ns;
			}

			if (hasDecs)
			{
				return ns + "," + fractions[1];
			}
			else
			{
				return ns;
			}
		}
		else
		{
			return val;
		}
	}
}

function OpenPrintWindow(strType)
{
	var url = "";

	switch(strType)
	{
		case "genpart":
			url = "/page1187.aspx?type=genpart";
			break;
		case "betingelser":
			url = "/ref.aspx?id=4334";
			break;
		case "bilag":
			url = "/page1233.aspx";
			break;
		default:
			url = "/page1187.aspx";
	}

	var w = window.open(url,"Print","width=800,height=700,toolbar=no,scrollbars=yes");
}

