
// -------------------------------------------------------------------------------
// OnChange events for controls in SearchINS.asp
// -------------------------------------------------------------------------------

function changeStructure(newID)
{
	fillRegionList_CS(newID);
	fillMunicipalityList_CS(newID);
	window.document.frmSearch.chkTotalsOnly.checked=false;
}

function changeRegion(newID)
{
	selectMunicipalities_CS( newID ); 
	window.document.frmSearch.chkTotalsOnly.checked=false;
}

function changeTableGroup(newID)
{
	fillTableList_CS(newID);
	fillChapterList_CS(newID);
	setvalue("tablegroupid", newID)
}

function changeTable(newID)
{
	selectTableColumns_CS(newID);
	setvalue("tableid", newID)
}

function changeTotalsOnly(value)
{

	setvalue("totalsonly", value)
}
// -------------------------------------------------------------------------------
// OnChange events for controls in ResultWindow1.asp
// -------------------------------------------------------------------------------
function changeyear( displayyear)
{
	setvalue("displayyear", displayyear );
	submitResultWindow1();
}

function changesaveasRW1( saveas )
{
	if (saveas == 0)
	{ 
		return;
	} 
	setvalue("saveas", saveas );
	callRW1SaveAs();
}

function changesaveasRW2( saveas )
{
	if (saveas == 0)
	{ 
		return;
	} 
	setvalue("saveas", saveas );
	callRW2SaveAs();
}

function changeviewRW1( displayas )
{
	setvalue("displayas", displayas );
	submitResultWindow1();
}

function javasortRW1( colno, fieldname, order )	//skal rettes til også at kunne håndtere regioner
{
	setvalue("mtsortcolumn", colno );
	setvalue("mtsortorder", order );
	setvalue("mtsortfield", fieldname );
	submitResultWindow1();
}
// -------------------------------------------------------------------------------
// OnChange events for controls in ResultWindow2.asp
// -------------------------------------------------------------------------------
function changeelement( elementid)
{
	setvalue("elementid", elementid );
	submitResultWindow2();
}

function changeinterval( intervalno)
{
	setvalue("intervalno", intervalno );
	submitResultWindow2();
}

function changeviewRW2( displayas )
{
	setvalue("displayas", displayas );
	submitResultWindow2();
}

function javasortRW2( colno, fieldname, order )	
{
	setvalue("mtsortcolumn", colno );
	setvalue("mtsortorder", order );
	setvalue("mtsortfield", fieldname );
	submitResultWindow2();
}


// -------------------------------------------------------------------------------
// Help functions
// -------------------------------------------------------------------------------

function setvalue(field, value)
{
//--------------------------------------------------------------------------------
//	set values in frmArguments
//--------------------------------------------------------------------------------
	var ofrm = window.document.frmArguments ;

	if (field =='structureid') { ofrm.structureid.value = value; }
	if (field =='municipalities') { ofrm.municipalities.value = value; }
	if (field =='tableid') { ofrm.tableid.value = value; }
	if (field =='tablegroupid') { ofrm.tablegroupid.value = value; }
	if (field =='saveas') { ofrm.saveas.value = value;  }
	if (field =='mtsortcolumn') { ofrm.mtsortcolumn.value = value; }
	if (field =='mtsortorder') { ofrm.mtsortorder.value = value; }
	if (field =='mtsortfield') { ofrm.mtsortfield.value = value; }
	if (field =='rtsortcolumn') { ofrm.rtsortcolumn.value = value; }
	if (field =='rtsortorder') { ofrm.rtsortorder.value = value; }
	if (field =='rtsortfield') { ofrm.rtsortfield.value = value; }
	if (field =='displayas') { ofrm.displayas.value = value; }
	if (field =='displayyear') { ofrm.displayyear.value = value; }
	if (field =='elementid') { ofrm.elementid.value = value; }
	if (field =='intervalno') { ofrm.intervalno.value = value; }
	if (field =='totalsonly') { ofrm.totalsonly.value = value; }
}

function getMunicipalities()
//--------------------------------------------------------------------------------------------------
// return selected municipalities as string 
//--------------------------------------------------------------------------------------------------
{
	var ix=0;
	var mystring="";
	var bfound=false;
	var obj=window.document.frmSearch.lstMunicipalities;

	for (ix=0; ix < obj.length; ix++ )
	{ 
		if (obj.options[ix].selected==true)
		{bfound=true; break;}
	}

	if (bfound==false)		//none selected - assume all wanted
	{
		for (ix=0; ix < obj.length; ix++ )
		{ 
			if (obj.options[ix].value != '-1')	//don't save grouplevels
			{mystring+=obj.options[ix].value+";" ;}
		}
	}
	else								// find selected rows
	{
		for ( ix=0; ix < obj.length; ix++ )
		{ 
			if (obj.options[ix].selected==true)
			{mystring+=obj.options[ix].value+";" ;}
		}
	}
	return mystring;
}

function getDisplayAs(tableid)
//--------------------------------------------------------------------------------------------------
// return how data should be shown default
//--------------------------------------------------------------------------------------------------
{
	for (var ix=0; ix < ArrTT.length; ix++ )	//  GroupID, TableID, Text, DefaultDisplay, DefaultYear, XMLFile
	{ 
			var strArray = ArrTT[ix].split(";");
			if (tableid==strArray[1])
			{
				return strArray[3];
				break;
			}
	}
}

//function getDisplayYear(tableid)
//--------------------------------------------------------------------------------------------------
// return which year data should be shown for default (obsolete version 2)
//--------------------------------------------------------------------------------------------------
//{
//	for ( var ix=0; ix < ArrTT.length; ix++ )	//  GroupID, TableID, Text, DefaultDisplay, DefaultYear, XMLFile
//	{ 
//			var strArray = ArrTT[ix].split(";");
//			if (tableid==strArray[1])
//			{
//				return strArray[4];
//				break;
//			}
//	}
//}


function IsSearchDataValid()
//--------------------------------------------------------------------------------------------------
// Check whether required values entered in frmSearch
//--------------------------------------------------------------------------------------------------
{
	var ofrm = window.document.frmSearch ;
	var obj ;
	var ix = 0;
	var mystring= "";
	var tableid;
// 	check whether structure is selected
	obj = ofrm.cboStruct;
//alert(obj.length);
	if ( obj.length== 0) {alert("Ingen struktur valgt, hvorfor ingen data kan vises\r\nKontakt venligst Analysekontoret via nedenstående link omkring problemet."); obj.focus();return false;}
//	check whether table is selected
	obj = ofrm.cboTable;
	if ( obj.value== -1) {alert("Vælg hvilke nøgletal, der ønskes vist."); obj.focus();return false;}
}

function selectfix(opt)
//------------------------------------------------------------------------------
// 	Deselect disabled in Multiple select (IE-prob.)
//------------------------------------------------------------------------------
{
	if(  opt.value ==-1){opt.selected = false; }
}

// -------------------------------------------------------------------------------
// Form functions - call to pages
// -------------------------------------------------------------------------------
function openhelp(URL) 
{
	win_width = 800;
	win_height = 600;
	pos_horizon = ((screen.width/2)-(win_width/2));
	pos_vertical = ((screen.height/2)-(win_height/2));
	win = window.open(URL, "PopUp", "Width="+win_width+",Height="+win_height+",Top="+pos_vertical+",Left="+pos_horizon+",scrollbars=yes,toolbar=no,resizable=yes");
	win.focus();
}

function callSearchRW1()
//-------------------------------------------------------------------------------------------------
//	Initialization made when calling resultwindow from SearchINS
//-------------------------------------------------------------------------------------------------
{
	if (IsSearchDataValid()==false) { return false}

//	initialize frmArgument fields
	var ofrmsearch = window.document.frmSearch ;
	var ofrmargument = window.document.frmArguments ;
	var tableid=ofrmsearch.cboTable.value;

	ofrmargument.structureid.value = ofrmsearch.cboStruct.value
	ofrmargument.regionid.value = ofrmsearch.cboRegion.value
	ofrmargument.municipalities.value = getMunicipalities();
	ofrmargument.tablegroupid.value = ofrmsearch.cboTableGroup.value
	ofrmargument.tableid.value = tableid
	ofrmargument.totalsonly.value = ofrmsearch.chkTotalsOnly.checked;

	//ofrmargument.displayas.value = getDisplayAs(tableid);
	//ofrmargument.displayyear.value = '';
	ofrmargument.elementid.value =0;
	ofrmargument.intervalno.value = 1;

	ofrmargument.mtsortorder.value = 'ascending'
	ofrmargument.mtsortfield.value = 'mtsortfield'
	ofrmargument.mtsortcolumn.value = 0
	ofrmargument.saveas.value = ''	

	ofrmargument.submit();
	return true;
}

function callRW2fromRW1(elementid)
//-------------------------------------------------------------------------------------------------
//	Initialization made when calling resultwindow from RW1 or RW2
//  frmArguments initialized by 
// 		RW1 - click on icon
//		RW2 - onchange cbointerval/cboElement
//-------------------------------------------------------------------------------------------------
{
	setvalue("elementid", elementid );
	setvalue("intervalno", 1 );
	document.frmArguments.action = "ResultWindow2.asp";
    	document.frmArguments.submit();
}

function callRW1fromRW2()
//-------------------------------------------------------------------------------------------------
//	Initialization made when calling resultwindow RW1 from RW2
//-------------------------------------------------------------------------------------------------
{
	var ofrmargument = window.document.frmArguments ;
	var DisplayAs = getDisplayAs(ofrmargument.tableid.value);
	setvalue("displayas",DisplayAs);

	setvalue("elementid", 0 );
	setvalue("intervalno", 1 );
	document.frmArguments.action = "ResultWindow1.asp";
    	document.frmArguments.submit();
}

function callSearchINS()
//--------------------------------------------------------------------------------------------------
//	Call SearchINS.asp by frmArguments from resultwindow
//--------------------------------------------------------------------------------------------------
{
	document.frmArguments.action = "SearchINS.asp";
    	document.frmArguments.submit();
}


function callRW1SaveAs()
//--------------------------------------------------------------------------------------------------
//	Call INSSaveAs.asp by frmArguments from resultwindow
//--------------------------------------------------------------------------------------------------
{
	document.frmArguments.action = "RW1_SaveAs.asp";
    	document.frmArguments.submit();
}

function callRW2SaveAs()
//--------------------------------------------------------------------------------------------------
//	Call INSSaveAs.asp by frmArguments from resultwindow
//--------------------------------------------------------------------------------------------------
{
	document.frmArguments.action = "RW2_SaveAs.asp";
    	document.frmArguments.submit();
}
function submitResultWindow1()
//--------------------------------------------------------------------------------------------------
//	Call resultwindow by frmArguments from resultwindow
//--------------------------------------------------------------------------------------------------
{	document.frmArguments.action = "ResultWindow1.asp";
	window.document.frmArguments.submit();	
}

function submitResultWindow2()
//--------------------------------------------------------------------------------------------------
//	Call resultwindow1 by frmArguments from resultwindow
//--------------------------------------------------------------------------------------------------
{	document.frmArguments.action = "ResultWindow2.asp";
	window.document.frmArguments.submit();	
}

// -------------------------------------------------------------------------------
// Formcontrol-specific functions
// -------------------------------------------------------------------------------

function fillRegionList_CS(structureID)
// -------------------------------------------------------------------------------
// Contents of Regionlist depends on chosen structure
// This function is called by onchange event for 'cboStruct'
// -------------------------------------------------------------------------------
{
	var formobj	= window.document.frmSearch.cboRegion; 
	// clear list
	formobj.options.length = 0 ;
		
	// Add all options matching structure in ArrRegion
	formobj.options[0]= new Option('Vælg evt. region','-1');
	var listeix = 1;
	for ( var count = 0; count < ArrRegion.length; count++ ) 
	{
		var sRegionArr = ArrRegion[count].split(";");
		if ( sRegionArr[0] ==  structureID )
		{
			formobj.options[listeix]= new Option(sRegionArr[2],sRegionArr[1]);
			listeix++
		}
	}
	formobj.options[listeix]= new Option('Alle kommuner i hele landet','-1');
}


function fillMunicipalityList_CS(structureID)
// -------------------------------------------------------------------------------
// Contents of lstMunicipalities depends on chosen structure
// This function is called by function 'fillRegionList_CS()'
// -------------------------------------------------------------------------------
{
	var formobj	= window.document.frmSearch.lstMunicipalities; 
	var mcount =0;
	// clear list
	formobj.options.length = 0;
		
	for ( var ix1 = 0; ix1 < ArrRegion.length; ix1++) 
	{
		var sRegionArray = ArrRegion[ix1].split(";");	//StructureID, RegionID,  RegionName
		if( sRegionArray[0] ==  structureID )
		{
			var opt=new Option(sRegionArray[2],'-1');
			opt.style.color = 'darkblue'; 
			opt.disabled ;
			formobj.options[mcount]= opt;
			mcount++
						
			for (var ix2=0;ix2 < ArrMT.length;ix2++)
			{
				var strMTArray = ArrMT[ix2].split(';');	//StructureID, RegionID,  MT_ID, No, Name
				if ( strMTArray[0] ==  structureID && strMTArray[1] == sRegionArray[1] )
				{
					formobj.options[mcount]= new Option(unescape('  ') + strMTArray[3] + ' - ' + strMTArray[4],strMTArray[2]);
					mcount++
				}
			}
		}
	}
}
	
function selectMunicipalities_CS( regionID ) 
//----------------------------------------------------------------------------------------------------------------------------
//	This function relies on global array 'ArrMT' which contains code-values for each kommune
//	Whenever a new region is chosen all selected options are deselected followed by a selection of
// 	options for selected region
//----------------------------------------------------------------------------------------------------------------------------
{ 
	var structureID = window.document.frmSearch.cboStruct.value;
	var formobj	= window.document.frmSearch.lstMunicipalities; 
	//	Deselect all
	for (var listeix=0; listeix < formobj.length; listeix++ )
	{ formobj.options[listeix].selected = false; }

	if (regionID==-1) {return;}

	// Find municipalities to select (structureID/regionID)

	for ( ix1=0;ix1 < ArrMT.length; ix1++ )
	{ 
  		var sMTArr = ArrMT[ix1].split(";");
 		if ( sMTArr[0]==structureID & sMTArr[1] == regionID )
  		{
			for (listeix=0; listeix < formobj.length; listeix++ )
			{
				if( sMTArr[2] ==  formobj.options[listeix].value )
				{formobj.options[listeix].selected = true; }
			}		
  		}
	}
} 

function municipalityclick(opt)
//--------------------------------------------------------------------------------------------
//	Purpose - reset region
//--------------------------------------------------------------------------------------------
{
	var oregionselect =  window.document.frmSearch.cboRegion

	oregionselect.options[0].selected = true;
	selectfix(opt);
	window.document.frmSearch.chkTotalsOnly.checked=false;
}


//--------------------------- Table functions START ------------------------------

function fillTableList_CS(tablegroupID) 
// -------------------------------------------------------------------------------
// Contents of tablelist depends on chosen tablegroup
// -------------------------------------------------------------------------------
{ 
	var formobj	= window.document.frmSearch.cboTable; 
	//	clear list
	formobj.options.length = 0 ;
		
	// Add all options matching tablegroup ArrTT
	formobj.options[0]= new Option('Vælg nøgletalstabel her eller i listen nedenfor','-1');
	var listeix = 1;

	for ( var count = 0; count < ArrTT.length; count++ ) 
	{
		var strArray = ArrTT[count].split(";");
		if( strArray[0] ==  tablegroupID )
		{
			formobj.options[listeix]= new Option(strArray[4],strArray[2]);
			listeix++
		}
	}
}

function fillChapterList_CS(tablegroupID) 
// -------------------------------------------------------------------------------
// Contents of ChapterTablelist depends on chosen tablegroup
// -------------------------------------------------------------------------------
{ 
	var formobj	= window.document.frmSearch.lstTableColumns; 
	var count =0;
		
	//	clear list
	formobj.options.length = 0;

	for (var ixTGC = 0;ixTGC < ArrTGC.length;ixTGC++)
	{
		var strTGCArr = ArrTGC[ixTGC].split(";");

		if ( strTGCArr[0] == tablegroupID)
		{
		// Add chapter to list as group header
			var opt = new Option('---------------------------------------------------------------------------------------------','-1');
			opt.disabled=true;
			opt.style.color = "darkblue"; 
			formobj.options[count]=opt;
			count++
	
			var opt = new Option(strTGCArr[2],'-1');
			opt.disabled='disabled';
			opt.style.color = 'darkblue'; 
			formobj.options[count]=opt;
			count++

			var opt = new Option('---------------------------------------------------------------------------------------------','-1');
			opt.disabled='disabled';
			opt.style.color = "darkblue"; 
			formobj.options[count]=opt;
			count++
						
			// Add tables for current chapter
			for ( var ixTT = 0; ixTT < ArrTT.length; ixTT++ ) 
			{
				var strTTArray = ArrTT[ixTT].split(";");	//  {0]GroupID, [1]ChapterNo, [2]TableID, [3]DefaultDisplay, [4]TableName
				if ( strTTArray[0] ==  strTGCArr[0] && strTTArray[1] ==  strTGCArr[1])
				{
					var opt = new Option(strTTArray[4],strTTArray[2]);
					formobj.options[count]=opt;
					count++					
				}
			}
		}
	}
}

function fillColumnList_CS(tablegroupID) 
// -------------------------------------------------------------------------------
// Contents of TableColumnlist depends on chosen tablegroup
// -------------------------------------------------------------------------------
{ 
	var formobj	= window.document.frmSearch.lstTableColumns; 
	var count =0;
		
	//	clear list
	formobj.options.length = 0;

	for (var ixTT = 0;ixTT < ArrTT.length;ixTT++)
	{
		var strTTArr = ArrTT[ixTT].split(";");
		if ( strTTArr[0] == tablegroupID)
		{
		// Add table to list as group header
			var opt = new Option('---------------------------------------------------------------------------------------------','-1');
			opt.disabled='disabled';
			opt.style.color = "darkblue"; 
			formobj.options[count]=opt;
			count++
	
			var opt = new Option(strTTArr[2],'-1');
			opt.style.color = 'darkblue'; 
			formobj.options[count]=opt;
			count++

			var opt = new Option('---------------------------------------------------------------------------------------------','-1');
			opt.disabled='disabled';
			opt.style.color = "darkblue"; 
			formobj.options[count]=opt;
			count++
						
			// Add columns for current table
			for ( var ixTC = 0; ixTC < ArrTC.length; ixTC++ ) 
			{
				var strTCArray = ArrTC[ixTC].split(";");	//[0]Tablegroup;[1]TableID,[2]ColumnID,[3] ColumnName
				if ( strTCArray[1] ==  strTTArr[1] )
				{
					var opt = new Option(strTCArray[3],strTCArray[1]);
					formobj.options[count]=opt;
					count++					
				}
			}
		}
	}
}

function selectTableColumns_CS ( tableID ) 
//--------------------------------------------------------------------------------------------
//	Purpose - select header tablerow in columnlist
//	ensure that columns are visible
//--------------------------------------------------------------------------------------------
{ 
	var formobj	= window.document.frmSearch.lstTableColumns; 

	// deselect chosen if default chosen in list

	if (tableID == '-1') 
	{
		formobj.selectedIndex = -1
		return;	
	}

	// select table option and fore-/backcolor for columns

	for (var listeix=0; listeix < formobj.length; listeix++ )
	{
		mystring = new String(formobj.options[listeix].value)
		if (mystring==tableID)
		{
			//formobj.options[listeix].style.background = '#000066';
			//formobj.options[listeix].style.color = 'white';
			formobj.options[listeix].selected=true;
		}
	}

} 

function tablecolumnclick(optionobj)
//--------------------------------------------------------------------------------------------
//	Purpose - determine which table column belongs to and change selected table in cbotable
//--------------------------------------------------------------------------------------------
{
//alert('tablecolumnclick:'+optionobj.value);
	var mystring 		= new String(optionobj.value);
	var tableID;
	var otableselect 	= window.document.frmSearch.cboTable
	var ocolumnselect 	= window.document.frmSearch.lstTableColumns

	if (mystring.substring(0,2)=='-1'   ) 
	{ ocolumnselect.selectedIndex = -1; otableselect.options[0].selected = true;}
	else
	{tableID = optionobj.value}

	// select entry in cboTable which equals selected table
	for (listeix=0; listeix < otableselect.length; listeix++ )
	{
		if( tableID ==  otableselect.options[listeix].value )
		{
			otableselect.options[listeix].selected = true; 
		}
	}
	// select header tablerow in columnlist
	//selectTableColumns_CS(tableID);
	setvalue("tableid", tableID)
}
//--------------------------- Table functions END ------------------------------

function printWindow()
{
   bV = parseInt(navigator.appVersion)
   if (bV >= 4) window.print()
}

