﻿/* ---------------- 2010 bfb javascript ---------------- */

/* function to choose background, dependant on hardcoded  front page id*/

function getBackground () {
var forsideId = 1289;
// if side id == forsidens sideid
//body.background = "blah blah color code og billede url"
//else
//body.background = "normal"
}

/* moving of undermenu from sitelayout to sidelayout */ 
function moveUndermenu(){

  var undermenuContainer =  document.getElementById('mergefield_navigation_level3'); 
  var newUndermenuContainer = document.getElementById('undermenuSidelayout');
  
    if (undermenuContainer && newUndermenuContainer) { 
    	Tangora.DOM.MoveElement('mergefield_navigation_level3', 'undermenuSidelayout'); 
    	//undermenuContainer.style.display = "block";
	     populateSecondNiveau(); 
    } 
}

/* makes clickable secondLevel headline for 3rd level menus for undersider */
function populateSecondNiveau(){
  var secondNiveauName = document.getElementById('secondNiveauName');
  var selectedSecondNiveauPoint = Tangora.DOM.GetCollectionByClassName('mergefield_navigation_level1', 'li', 'active');
  if (selectedSecondNiveauPoint[0].firstChild.innerHTML == 'ServiceMenuPunkter'){
    	return;
  } else {
     selectedSecondNiveauPointName = selectedSecondNiveauPoint[1].firstChild.innerHTML;
    selectedSecondNiveauPoint =  selectedSecondNiveauPoint[1].firstChild.href;
    secondNiveauName.innerHTML = "<a href='"+selectedSecondNiveauPoint+"' target='_top'>"+selectedSecondNiveauPointName+"<\/a>";
  }
  
}


/* mainmenuover and mainmenuout are over out functions that build a hover tabs navigation */
function mainMenuOver(paramThis){
  
  // use handy tangora classname array to get an array of the first level nav points 
  var firstNavItemArray = Tangora.DOM.GetCollectionByClassName('nav', 'li', 'level1'); 
  
  //make all items use normal state graphic
  for (var i=0; i<firstNavItemArray.length; i++) {
    firstNavItemArray[i].style.background = 'url(/media/mainMenuDivider.gif) no-repeat right top';
  }
  //and for the hovered anchor, choose its parent li, and use the hover graphic
  paramThis.parentNode.style.background = 'url(/media/mainMenuGradientActiveHover.gif) no-repeat 0px 0px';
}

function mainMenuOut(paramThis){
 
  //make an array to get the li item with class = active, so we can restore the active graphic state
  var activeItem =  Tangora.DOM.GetCollectionByClassName('nav', 'li', 'active'); 
  var firstNavItemArray = Tangora.DOM.GetCollectionByClassName('nav', 'li', 'level1'); 
  for (var i=0; i<firstNavItemArray.length; i++) {
   firstNavItemArray[i].style.background = 'url(/media/mainMenuDivider.gif) no-repeat right top';
  }
  //restore active graphic state
  if (activeItem.length != 0){
    activeItem[0].style.background = 'url(/media/mainMenuGradientActiveHover.gif) no-repeat right top';
  }
}

/* corresponding mouseover and mouseout functions for active sub ul hovers */
 function mainMenuOverUL (paramThis){
     if (paramThis.parentNode.className.indexOf('active')>-1){  }
	mainMenuOver(paramThis.parentNode.firstChild);
     // alert ('overul');
	    
 }
 
function mainMenuOutUL (paramThis){
     if (paramThis.parentNode.className.indexOf('active')>-1){   }
	mainMenuOut(paramThis.parentNode.firstChild);
     // alert ('outul');
	
 }


/* ---------------- end 2010 bfb javascript ---------------- */



function OpenPrintWindow(safeurl)
{
   window.open(safeurl + "layout=1","PrintWindow","toolbar=no, resizable=yes, scrollbars=yes");
   return false;   
}

function OpenPrintWindowAABNet(safeurl,layoutid)
{
   window.open(safeurl + layoutid,"PrintWindow","toolbar=no, resizable=yes, scrollbars=yes");
   return false;  
}

var AAB = new Object();
function intranet()
{
	this.ToggleExternalAddress = function()
	{
		var cb = document.getElementById("idcb_ekstern");
		var tb = document.getElementById("idtb_ekstern");
		if(!tb || !cb) return false;

		if(cb.checked)
		{
			tb.disabled = false;
		}
		else
		{
			tb.disabled = true;
			tb.value = "";
		}
	}

	this.GetSelectedIDs = function(frm)
	{
		var chbs = frm.getElementsByTagName("input");
		var ids = "";

		for(var i = 0; i < chbs.length; i++)
		{

			if(chbs[i].checked)
			{
				ids += "," + chbs[i].id.substring(chbs[i].id.indexOf("_")+1,chbs[i].id.length) + ",";
			}
		}

		return ids;
	}

	this.SetFieldValue = function(frm,strID)
	{
		var field = document.getElementById(strID);
		if(window.confirm('Vil du slette de markerede brugere? Alle brugernes data mistes.') && field)
		{
			field.value = this.GetSelectedIDs(frm);
			frm.submit();
		}
	}

	this.InsertHeaderRowIntoTable = function(table)
	{
return;
		if(table)
		{
			var firstRow = Tangora.DOM.GetFirstCollectionMember(table,"tr");
			var newRow = document.createElement("tr");
			var td = "";
			
			for(var i = 0; i < 4; i++)
			{
				td = document.createElement("td");
				td.innerHTML = " ";
				newRow.appendChild(td);
			}

			for(var i = 4; i < 9; i++)
			{
				td = document.createElement("td");
				td.innerHTML = firstRow.childNodes[i].innerHTML;
				td.className = "section";
				newRow.appendChild(td);
			}

			for(var i = 0; i < 1; i++)
			{
				td = document.createElement("td");
				td.innerHTML = " ";
				newRow.appendChild(td);
			}

			firstRow.childNodes[4].colSpan = "2";
			firstRow.childNodes[4].innerHTML = "Egenskaber";
			firstRow.childNodes[4].style.textAlign = "left";
			firstRow.childNodes[7].colSpan = "2";
			firstRow.childNodes[7].innerHTML = "Statistik";
			firstRow.childNodes[7].style.textAlign = "left";
			firstRow.removeChild(firstRow.childNodes[8]);
			firstRow.removeChild(firstRow.childNodes[6]);
			firstRow.removeChild(firstRow.childNodes[5]);

			firstRow.parentNode.insertBefore(newRow,firstRow.nextSibling);				
		}
	}

	this.CopyFieldValues = function(orgElm, destElm)
	{
		destElm.value = orgElm.value;
	}

	this.AddEllipsisToCells = function(table)
	{
		var rows = table.rows;
		var cells = "";

		for(var i = 2; i < rows.length; i++)
		{
			cells = rows[i].cells;

			for(var x = 0; x < 4; x++)
			{
				cells[x].firstChild.className += " ellipsis";
				cells[x].firstChild.style.width = cells[x].offsetWidth - 13 + "px";
				cells[x].firstChild.style.display = "block";
				cells[x].firstChild.title = cells[x].innerText;
			}
		}
	}
}

function ProjectwebUploader()
{
	this.documentForm = null;
	this.messageWrapper = null;
	this.iframe = null;
	this.iframeForm = null;
	this.projectId = null;

	this.Init = function()
	{
		AAB.ProjectwebUploader.iframe = document.getElementById("post_frame");
		AAB.ProjectwebUploader.messageWrapper = document.getElementById("upload_message");
		AAB.ProjectwebUploader.AlterFormAttributes();

		Tangora.Events.AddHandler(AAB.ProjectwebUploader.iframe,"onload",AAB.ProjectwebUploader.FormOnLoad);
	}

	this.AlterFormAttributes = function()
	{
		this.documentForm = document.forms.upload;
		this.documentForm.target = "post_frame";
		this.documentForm.action = this.documentForm.action.replace("page436","page437");
		Tangora.Events.AddHandler(this.documentForm,"onsubmit",this.FormOnSubmit);
	}

	this.FormOnSubmit = function()
	{
		if(AAB.ProjectwebUploader.messageWrapper) AAB.ProjectwebUploader.messageWrapper.innerHTML = "";
	}

	this.FormOnLoad = function()
	{
		var txt = "";

		AAB.ProjectwebUploader.iframeForm = AAB.ProjectwebUploader.iframe.contentWindow.document.forms.upload;
		txt = AAB.ProjectwebUploader.iframe.contentWindow.document.getElementsByTagName("p")[0].innerHTML;

		if(!AAB.ProjectwebUploader.iframeForm)
		{
			document.location = "/page446.aspx?recordid=" + txt;
		}

		AAB.ProjectwebUploader.messageWrapper.innerHTML = txt;

		AAB.ProjectwebUploader.documentForm.outerHTML = AAB.ProjectwebUploader.FetchForm();
		AAB.ProjectwebUploader.AlterFormAttributes();
	}

	this.FetchForm = function()
	{
		var url = location.protocol + "//" + location.host + "/page437.aspx?projectid=" + this.projectId + "&rndkey=" + Math.random(10000);
		var content = tsAjax.innerHTML(url);
		return content;
	}

	this.RenderForm = function()
	{
		document.write(this.FetchForm());
	}

	this.HideForm = function()
	{
		if(!this.documentFrom || !this.messageWrapper) this.Init();
		this.documentForm.style.display = "none";
		this.messageWrapper.innerHTML = "Udbuddet er lukket";
	}
}

// Fix by NIS
function getParam(paramName, valueStr) {

	 // get value of paramName, pass url as valueStr 

	 if (typeof(valueStr=='undefined')){
		  valueStr = window.location.search;
	 }
	 var expr = eval("/[\\?|\\&]" + paramName + "=(.*?)\\&/");
	 regex = new RegExp(expr);
	 regex.global=true;
	 regex.ignoreCase=true;

	 // fix by NIS start
	 var match = regex.exec(valueStr+'&'); 
	 if (match != null) return RegExp.$1;
	 return "";
	 // fix by NIS end
}

AAB.Intranet = new intranet();
AAB.ProjectwebUploader = new ProjectwebUploader();

// Kalender - tilføjet af TS-MSO d. 04-06-2008
function Calendar(cal_ph,displayMonth,displayYear,instanceName)
{
	this._placeHolder = null;
	this._currentMonth = null;
	this._currentYear = null;
	this._currentDay = null;
	this.TodaysDate = null;
	this.Today = null;
	this.TodaysMonth = null;
	this.TodaysYear = null;
	this.ShowHeader = false;
	this._monthNames = ["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"];
	this._dayNames = ["mandag","tirsdag","onsdag","torsdag","fredag","lørdag","søndag"];
	this._events = new Array();
	this._dayClickHandlers = new Array();
	this._dayMouseOverHandlers = new Array();
	this._dayMouseOutHandlers = new Array();
	this._nextMonthClickHandlers = new Array();
	this._previousMonthClickHandlers = new Array();
	this._externalHandlers = new Array();
	this._initHandlers = new Array();
	this._renderHandlers = new Array();
	this.EventDataCallBack = null;
	this.NextMonthClickHandler = null;
	this.PreviousMonthClickHandler = null;
	this.ShowWeekNumber = true;
	this.ShowDayNameForEachDate = false;
	this.ShowOverFlowDates = true;

	this.Init = function()
	{  
		var elm = (this == window) ? eval(instanceName) : this;

		elm._placeHolder = document.getElementById(cal_ph);

		if(isNaN(elm._currentMonth))
		{
			elm._currentMonth = (isNaN(displayMonth) || displayMonth == null) ? new Date().getMonth() : displayMonth-1;
			elm._currentYear  = (isNaN(displayYear) || displayYear == null) ? new Date().getFullYear() : displayYear;
		}
		elm.Render();

		for(var i = 0; i < elm._initHandlers.length; i++)
		{
			elm._initHandlers[i]();
		}
	}

	this.RegisterHandler = function(name,handler)
	{
		switch(name)
		{
			case "eventClick":
				this._dayClickHandlers.push(handler);
				break;
			case "eventMouseOver":
				this._dayMouseOverHandlers.push(handler);
				break;
			case "eventMouseOut":
				this._dayMouseOutHandlers.push(handler);
				break;
			case "next":
				this._nextMonthClickHandlers.push(handler);
				break;
			case "previous":
				this._previousMonthClickHandlers.push(handler);
				break;
			case "init":
				this._initHandlers.push(handler);
				break;
			case "external":
				this._externalHandlers.push(handler);
				break;
			case "render":
				this._renderHandlers.push(handler);
				break;
		}
	}

	this._execRenderHandlers = function()
	{
		for(var i = 0; i < this._renderHandlers.length; i++)
		{
			this._renderHandlers[i]();
		}
	}

	this._dayClickHandler = function()
	{
		var elm = eval(instanceName);

		for(var i = 0; i < elm._dayClickHandlers.length; i++)
		{
			elm._dayClickHandlers[i].call(elm,this.childNodes[0].innerHTML,elm._currentMonth+1, elm._currentYear);
		}
	}

	this._dayMouseOverHandler = function(e)
	{
		var elm = eval(instanceName);

		for(var i = 0; i < elm._dayMouseOverHandlers.length; i++)
		{
			var target = (window.event) ? window.event.srcElement : e.target;

			elm._dayMouseOverHandlers[i].call(elm,this.childNodes[0].innerHTML,elm._currentMonth+1, elm._currentYear,target);
		}
	}

	this._dayMouseOutHandler = function()
	{
		var elm = eval(instanceName);

		for(var i = 0; i < elm._dayMouseOutHandlers.length; i++)
		{
			elm._dayMouseOutHandlers[i]();
		}
	}

	this._nextMonthClickHandler = function()
	{
		var elm = eval(instanceName);

		if(elm._nextMonthClickHandlers)
		{
			for(var i = 0; i < elm._nextMonthClickHandlers.length; i++)
			{
				elm._nextMonthClickHandlers[i]();
			}

			//if(elm._nextMonthClickHandlers.length == 0)

			elm.SetMonth(elm._currentMonth+1);
		}

		elm._executeExternalHandlers();
			
		return false;
	}

	this._previousMonthClickHandler = function()
	{
		var elm = eval(instanceName);

		if(elm._previousMonthClickHandlers)
		{
			for(var i = 0; i < elm._previousMonthClickHandlers.length; i++)
			{
				elm._previousMonthClickHandlers[i]();
			}

			//if(elm._previousMonthClickHandlers.length == 0)
			elm.SetMonth(elm._currentMonth-1);
		}

		elm._executeExternalHandlers();

		return false;
	}

	this._executeExternalHandlers = function()
	{
		var elm = eval(instanceName);

		for(var i = 0; i < elm._externalHandlers.length; i++)
		{
			elm._externalHandlers[i]();
		}
	}

	this.SetToday = function(date)
	{
		this.TodaysDate = date;
		//var d = new Date(date);
		//var day = d.getDate();
		//var month = d.getMonth();
		//var year = d.getFullYear();

		var day = parseInt(this.TodaysDate.split("-")[0]);
		//var month = parseInt(this.TodaysDate.split("-")[1])-1;
		var month = this.TodaysDate.split("-")[1];

			if(month[0] == "0") month = month.substring(1);
			month = parseInt(month)-1;
 
		var year = this.TodaysDate.split("-")[2];
		
		year = year.substring(0,4);

		//if(day < 10) day = "0" + day;

		this.Today = day;
		this.TodaysMonth = month;
		this.TodaysYear = year;	

	}

	this.AddEvent = function(date)
	{
		if(!this._eventExists(date)) this._events.push(date);
	}

	this.ClearEvents = function()
	{
		this._events = null;
		this._events = new Array();
	}

	this._eventExists = function(date)
	{
		date = date.split("-");
		var day = date[0];

		if(day < 10) day = "0" + day;

		month = parseInt(date[1]);
		month = (month < 10) ? "0" + month : month;
		var year = date[2];

		date = day + "-" + month + "-" + year;

		for(var i = 0; i < this._events.length; i++)
		{
			if(this._events[i] == date) return true;
		}

		return false;
	}

	this.Render = function()
	{
		this._placeHolder.innerHTML = "";

		var wrap = document.createElement("div");
		wrap.id = "cal_wrapper";

		if(this.ShowHeader)
		{
			var monthName = document.createElement("h2");
			monthName.id = "cal_name_wrapper";
			monthName.innerHTML = this._getMonthName(this._currentMonth);

			var years = document.createElement("select");
			years.id = "year_selector";
			years.onchange = this.YearSelectClickHandler;

			for(var u = (parseInt(this._currentYear)-10); u < (parseInt(this._currentYear)+10); u++)
			{
				var opt = document.createElement("option");
				opt.value = u;
				opt.innerHTML = u;
				if(u == this._currentYear) opt.selected = true;
				years.appendChild(opt);
			}

			monthName.appendChild(years);
			wrap.appendChild(monthName);
		}

		var dayWrapper = document.createElement("div");
		dayWrapper.id = "day_names_wrapper";
		if(!this.ShowDayNameForEachDate) wrap.appendChild(dayWrapper);

		var dayHeader = document.createElement("div");
		dayHeader.id = "week_number_header";
		dayHeader.className = "week_number_wrapper";
		dayHeader.innerHTML = "Uge";
		if(this.ShowWeekNumber) dayWrapper.appendChild(dayHeader);

		for(var i = 0; i < this._dayNames.length; i++)
		{
			dayHeader = document.createElement("div");
			dayHeader.id = "day_" + i;
			dayHeader.className = "day_header";
			dayHeader.innerHTML = this._dayNames[i];
			dayWrapper.appendChild(dayHeader);
		}

		var fb = document.createElement("div");
		fb.className = "floatbreaker";
		dayWrapper.appendChild(fb);

		var weeks = this._getNumberOfWeeks(this._currentMonth,this._currentYear);
		var days = this._dayNames.length;
		var firstDay = this._getFirstDayOfMonth(this._currentMonth,this._currentYear);
		var monthLength = this._getMonthLength(this._currentMonth,this._currentYear);
		var day = 1;
		var week = this._getWeekNumber(day,this._currentMonth,this._currentYear);

		var daysWrapper = null;
		var weekWrapper = null;

		var j = 0;
		if(firstDay == 0) j = -1;

		var overFlowDate = 1;

		for(j; j < weeks; j++)
		{
			daysWrapper = document.createElement("div");
			daysWrapper.className = "week_wrapper";

			weekWrapper = document.createElement("div");
			weekWrapper.className = "week_number_wrapper";
			weekWrapper.innerHTML = week;
			if(this.ShowWeekNumber) daysWrapper.appendChild(weekWrapper);
			week++;

			var dayWrapper = null;
			var d = null;

			for(var x = 1; x <= days; x++)
			{
				dayWrapper = document.createElement("div");
				dayWrapper.className = "day_wrapper";

				if(x == 6 || x == 7) dayWrapper.className += " weekend";

				if (day <= monthLength && (j > 0 || x >= firstDay) && (j > -1 || x == 7))
				{
					//if(day < 10) day = "0" + day;
					if(this.ShowDayNameForEachDate) dayWrapper.innerHTML = "<span class=\"dayname_wrapper\">" + this._dayNames[x-1] + "</span>";
					dayWrapper.innerHTML += "<span class=\"date_wrapper\">" + day + "</span>";

					if(this.Today == parseInt(day) && this.TodaysMonth == this._currentMonth && this.TodaysYear == this._currentYear)
					{
						dayWrapper.id = "current_day";
					}

					var theDate = day + "-" + (parseInt(this._currentMonth)+1) + "-" + this._currentYear;

					if(this._eventExists(theDate))
					{
						dayWrapper.className += " event_day";

						if(this.EventDataCallBack)
						{
							dayWrapper.innerHTML += this.EventDataCallBack(theDate);
						}
						else
						{
							dayWrapper.onclick = this._dayClickHandler;
							dayWrapper.onmouseover = this._dayMouseOverHandler;
							dayWrapper.onmouseout = this._dayMouseOutHandler;
						}
					}

					day++;
				}
				else if(day > monthLength)
				{
					dayWrapper.innerHTML = overFlowDate;
					overFlowDate++;
					if(!this.EventDataCallBack) dayWrapper.onclick = this._nextMonthClickHandler;
					dayWrapper.className += " nextMonth";
				}
				else if((j == -1 && x < 7) || (j == 0 && x < firstDay))
				{
					var ml = this._getMonthLength(this._currentMonth-1,this._currentYear);

					dayWrapper.innerHTML = ml-firstDay+x+1;
					if(j == -1) dayWrapper.innerHTML = ml-6+x;
					if(!this.EventDataCallBack) dayWrapper.onclick = this._previousMonthClickHandler;
					dayWrapper.className += " previousMonth";
				}
				daysWrapper.appendChild(dayWrapper);
			}

			wrap.appendChild(daysWrapper);
		}

		this._placeHolder.appendChild(wrap);

		var fb = document.createElement("div");
		fb.className = "floatbreaker";
		fb.innerHTML = " ";
		this._placeHolder.appendChild(fb);

		this._execRenderHandlers();
	}

	this._getMonthLength = function(monthIndex,year)
	{
		var d = new Date(year, monthIndex + 1, 0);
		return(d.getDate());
	}

	this._getMonthName = function(monthIndex)
	{
		return this._monthNames[parseInt(monthIndex)];
	}
	
	this._getDayName = function(dayIndex)
	{
		return this._dayNames[dayIndex];
	}

	this._getFirstDayOfMonth = function(monthIndex,year)
	{
		var d = new Date(year,monthIndex,1);
		return(d.getDay());
	}

	this._getNumberOfWeeks = function(monthIndex, year)
	{
		var weeks = Math.ceil((this._getMonthLength(monthIndex, year) + this._getFirstDayOfMonth(monthIndex, year)) / 7);

		return weeks;
	}

	this._getWeekNumber = function(day,month,year)
	{
			month = parseInt(month) + 1;

			var a = Math.floor((14-(month))/12);
			var y = year+4800-a;
			var m = (month)+(12*a)-3;
			var jd = day + Math.floor(((153*m)+2)/5) + (365*y) + Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400) - 32045;

			var d4 = (jd+31741-(jd%7))%146097%36524%1461;
			var L = Math.floor(d4/1460);
			var d1 = ((d4-L)%365)+L;
			NumberOfWeek = Math.floor(d1/7) + 1;
if(month == 9 || month == 10) NumberOfWeek++;
			return NumberOfWeek;	  
	}

	this.SetYear = function(year)
	{
		this._currentYear = year;
		this.Render();
	}

	this.SetMonth = function(month)
	{
		if(month > 11)
		{
			this._currentMonth = 0;
			this._currentYear = parseInt(this._currentYear)+1;
		}
		else if(month < 0)
		{
			this._currentMonth = 11;
			this._currentYear = parseInt(this._currentYear)-1;
		}
		else
		{
			this._currentMonth = month;
		}

		this.Render();
	}

	this.YearSelectClickHandler = function()
	{
		var year = this.options[this.selectedIndex].value;
		eval(instanceName).SetYear(year);
	}
}
AAB.Intranet.Calendar = Calendar;

function xCategoryFilter(sourceBoxId, categoryBoxId, subCategoryBoxId)
{
  var sourceBox;
  var categoryBox;
  var subCategoryBox;
  var subCategories = new Array();
  var categoryHierachy = new Array();

  this.SelectedSubCategory = "";

  this.Init = function()
  {
    sourceBox = document.getElementById(sourceBoxId);
    categoryBox = document.getElementById(categoryBoxId);
    categoryBox.owner = this;
    categoryBox.onchange = this.CategoryOnChangeHandler;
    subCategoryBox = document.getElementById(subCategoryBoxId);

    this.ExtractCategoryHierachy();
    this.ExtractSubCategories();
    subCategoryBox.options.length = 0;
    if(categoryBox.selectedIndex==0) subCategoryBox.setAttribute("disabled","disabled");

    this.FillSubCategoryBox(categoryBox.options[categoryBox.selectedIndex].innerHTML);
    this.SetSelectedSubCategory();
  }

  this.ExtractCategoryHierachy = function()
  {
    categoryHierachy = this.ExtractOptions(sourceBox);
  } 

  this.ExtractSubCategories = function()
  {
    subCategories = this.ExtractOptions(subCategoryBox);
  }

  this.ExtractOptions = function(elm)
  {
    var res = new Array();

    for(var i = 0; i < elm.options.length; i++)
    {
	var cat = new Object();
	cat.Id = elm.options[i].value;
	cat.Name = elm.options[i].innerHTML;
	res.push(cat);
    }

    return res;
  }

  this.CategoryOnChangeHandler = function(e)
  {
    if(this.selectedIndex > 0)
    {
	subCategoryBox.disabled = false;
	this.owner.FillSubCategoryBox(categoryBox.options[categoryBox.selectedIndex].innerHTML);
    }
    else
    {
	  subCategoryBox.selectedIndex = 0;
	  subCategoryBox.disabled = true;
    }
  }

  this.FillSubCategoryBox = function(parentName)
  {
    subCategoryBox.options.length = 0;

    var opt = document.createElement("option");
    opt.value = "";
    opt.innerHTML = sourceBox.options[0].innerHTML;
    subCategoryBox.appendChild(opt);

    for(var i = 0; i < categoryHierachy.length; i++)
    {
	var catName = categoryHierachy[i].Name.split(",");

	if(catName[1] != "" && catName[0] == parentName)
	{
	  var opt = document.createElement("option");
	  if(catName[1] != null) opt.value = catName[1].replace("&","&");
	  opt.innerHTML = catName[1];
	  subCategoryBox.appendChild(opt);
	}
    }
  }

  this.GetSubCategoryId = function()
  {
    var id = 0;

    for(var i = 0; i < subCategories.length; i++)
    {
	if(subCategories[i].Name == this.SelectedSubCategory)
	{
	  id = subCategories[i].Id;
	  break;
	}
    }

    return id;
  }

  this.SetSelectedSubCategory = function(catName)
  {
    for(var i = 0; i < subCategoryBox.options.length; i++)
    {
	if(subCategoryBox.options[i].value.toString() == this.SelectedSubCategory.toString()) break;
    }

    subCategoryBox.selectedIndex = i;
  }
}
AAB.Intranet.CategoryFilter = xCategoryFilter;