document.write('<script src="/CFIDE/scripts/wddx.js"><\/script>');

//<!--
// Created by T.N.W.Hynes - (c) 2001 PalandorZone.com ... Use it freely but leave this line intact
// If all else fails ... this will nail javascript triggered errors!
function stopError(){
return true;
}
//window.onerror=stopError;
//-->

function getMap()
{
	if (navigator.appName == "Netscape")
		return parent.mapframe.document.map;
	else
		return parent.mapframe.map;
}
function getParentMap()
{
    if (navigator.appName == "Netscape")
        return parent.window.opener.top.mapframe.document.map;
    else
        return parent.window.opener.top.mapframe.map;
}
function openHelp(fileName) {
     myFloater = window.open('','helpWindow','scrollbars=yes,status=no,width=400,height=480,resizable=yes')
     myFloater.location.href = fileName;
	 myFloater.window.focus();
}
function helpLoad(){
	hOn = new Image();
	hOn.src = "helpOn.jpg";
	hOff = new Image();
	hOff.src = "helpOff.jpg";
}
function openFeedbackWin(url)
{
	options = "fullscreen=no,Toolbar = no, status=no,scrollbars=yes,resizable=yes,menubar=no,width=500,height=500"
  	var RepLocation = window.open(url,'_blank',options);
}
function ShowLegend () {
	MyMap = getMap ();
	MyMap.LayersViewWidth = 150;
}

function HideLegend() {
	var Map = getMap();
	Map.LayersViewWidth = 0;
	
}
function openPopupHelp(HelpID) {
     HelpWin = window.open('','helpWindow','scrollbars=no,status=no,width=330,height=140,resizable=no')
     HelpWin.location.href = "./help/popup/" + HelpID + ".htm";
	// 	 HelpWin.window.focus();
}
/*================================================================================
Function		:ChangeAreaLayer
Description		:Used in BradScroll, Displays the MapGuide layer passed by LayerName 	
				:And ensures that any other layers passed by LayerOFF WDDX recordset are turned off
				;Also ensures if User defined (projects) is displayed, that the currect SQL where clause is used
Arguments		:LayerName - Layer name to Turn on
				:LayerOFF - an Array of LayerNames to turn off
Author			:Gary Morin
Date			:18/12/2000
Copyright(2000) (C): KeyGIS Limited
All Rights Reserved
================================================================================*/
function ChangeAreaLayer(LayerName, LayerOFF, userName){
	var map = getMap();
  var num = LayerOFF.getRowCount();
  if (LayerName == "Projects" && userName.length == 0) {
    LayerName = "TempUDA";
  }
  else {
// if user logs in must ensure that is a tempUDA layer exist it is turned off
    var templayer = map.getMapLayer("TempUDA");
    if (templayer != null)  {
      templayer.setVisibility(false);
    }
  }
  for (var RowNum = 0; RowNum < num; RowNum++ ){  
		var offName = LayerOFF.getField(RowNum,'LayerID');
    if (offName == "Projects" && userName.length == 0) {
      offName = "TempUDA";
    }
		var curLayer = map.getMapLayer(offName);
		if (curLayer != null){
			if (offName == LayerName) {
				// Layer is layer to turn on
				if (LayerName == 'Projects') {
					curLayer.setSQLWhere("UserID = '" + userName + "'");  
				}
				curLayer.setVisibility(true);
			}
			else {
				curLayer.setVisibility(false);
			}
		}
		else {
      if (offName != "TempUDA") { 
  			var offDesc = LayerOFF.getField(RowNum,'Description');
  			alert("Layer " + offDesc + " can not be found!");
      }
      else {
  		  var redlineLayer = map.createLayer("redline", "TempUDA");
        redlineLayer.setShowInLegend(false);      
      }
		}
    }    
	map.refresh();  
}
/*================================================================================
Function		:SetCurLayer
Description		:Used in BradScroll, Checks which layer defined in LayerDef is Visible and Checks
				: the correct radLayer
Arguments		:LayerDef - an Array of LayerNames to Check
            :userName - Username , 0 length if not log in
Author			:Gary Morin
Date			:18/12/2000
Copyright(2000) (C): KeyGIS Limited
All Rights Reserved
================================================================================*/
function SetCurLayer(LayerDef,userName){
	var map = getMap();
    var num = LayerDef.getRowCount();
    for (var RowNum = 0; RowNum < num; RowNum++ ){  
		  var offName = LayerDef.getField(RowNum,'LayerID');
      if (offName == "Projects" && userName.length == 0)
        offName = "TempUDA";
		  var curLayer = map.getMapLayer(offName);
		  if (curLayer != null){
	  		document.frmLayer.radLayer[RowNum].checked = curLayer.getVisibility();				
	  	}
	  	else {
        if (offName = "TempUDA")
          document.frmLayer.radLayer[RowNum].checked = false;
        else {
  	  		var offDesc = LayerOFF.getField(RowNum,'Description');
	    		alert("Layer " + offDesc + " can not be found!");
        }
	  	}
    } 
       
	map.refresh();  
}
/*================================================================================
Function		:openPopupWin
Description		:uses window.open to open a popup window
Arguments		:url	-	url of page to load
Author			:Gary Morin
Date			: 18/12/2000
Copyright(2000) : KeyGIS Limited
================================================================================*/
function openPopupWin(url)
{
	options = "fullscreen=no,Toolbar = yes, status=no ,scrollbars=yes,resizable=yes,menubar=no"
  	var RepLocation = window.open(url,"PopupWindow",options);
}

/*================================================================================
Function		:openReportWin
Description		:uses window.open to open a popup window
Arguments		:url	-	url of page to load
Author			:Gary Morin
Date			: 18/12/2000
Copyright(2000) : KeyGIS Limited
================================================================================*/
function openReportWin(url)
{
	options = "fullscreen=no,Toolbar = yes, status=no ,scrollbars=yes,resizable=yes,menubar=yes"
  	var RepLocation = window.open(url,"_blank",options);
}
/*================================================================================
Function	:doreport
Description	:Runs a MapGuide report, first checks that objects have been selected
			:and if the viewer is not busy runs the report specfied by type
Arguments	:Type - Name of MapGUide report to run
Author		:Gary Morin
Date		:18/12/2000
Copyright(2000)(C) KeyGIS Limited
All Rights Reserved
================================================================================*/
function doreport(type)
{
	var MyMap = getMap();
	var MySelection = MyMap.getSelection();
	if (MySelection != null)
	{ 	
		if (MyMap.isBusy() == false)        
		{   
		var ReportName = type;
			MyMap.viewreport(ReportName);	
		}	
		else		
					alert("The Viewer is busy ... please\n try again in a few seconds");
	}
	else
		alert("No Site Selected")					
}
/*================================================================================
Function	:gotoplace
Description	:Runs MapGuide Goto.
Arguments	:place - the text to search for
			:gotoName - The Zoom Goto name
Author		:Gary Morin
Date		:
Copyright(2000)(C) KeyGIS Limited
All Rights Reserved
================================================================================*/
function gotoplace(place,gotoName,width)
{	var MyMap = getMap();
    //map object  
          
		if (MyMap.isBusy() == false)        
		{   
			var category = gotoName;
			var town = place;
//			var width = 50000	;
			MyMap.zoomGotolocation(category, town, width);	
		}	
		else		
		alert("The Viewer is busy ... please\n try again in a few seconds");
}

/*================================================================================
Function	:selStdArea
Description	:Highlight an object in MapGuide
Arguments	:AreaID - Object Key
			:LayerID - Layer name to select Object from
			:OnOff - True if Select or false to unselect.
Author		:Gary Morin
Date		:18/12/2000
Copyright(2000)(C) KeyGIS Limited
All Rights Reserved
================================================================================*/
function selStdArea(AreaID, LayerID, OnOff)
{
	var map = getMap();
  	if (map.isBusy() == false)        
  	{   
		var myLayer = map.getMapLayer(LayerID);
		var mapObject = myLayer.getMapObject(AreaID);
		if (OnOff)
   			map.getSelection().addObject(mapObject,false);
		else
			map.getSelection().removeObject(mapObject,false);	
  	}	
  	else	
  	{
    	alert("The Viewer is currently busy, please re-select"); 
	}
}
/*================================================================================
Function	:highLightCheck
Description	:Loops through the Checkboxes in a form and highlights thoses checked
Arguments	:What - form to check
			:LayerID - The layer name to select objects from
Author		:Gary Morin
Date		:18/12/2000
Copyright(2000)(C) KeyGIS Limited
All Rights Reserved
================================================================================*/
function highLightCheck(what, LayerID) {

// ensure onselctionchanged event does not change
	parent.mapframe.gDoOnSelect = false;
	getMap().getSelection().clear();
    for (var i = 0; i<what.elements.length; i++) {
        if (what.elements[i].name.indexOf('Chks_') !=-1)
		{
            if (what.elements[i].checked) {
                selStdArea(what.elements[i].value,LayerID,true);
            }
        }
    }
	parent.mapframe.gDoOnSelect = true;
}
/*================================================================================
Function	:checkHighlight
Description	:Checks Checkboxes for Highlighted areas
Arguments	:What - CheckBox name
			:LayerID - The layer name to select objects from
Author		:Gary Morin
Date		:18/12/2000
Copyright(2000)(C) KeyGIS Limited
All Rights Reserved
================================================================================*/
function checkHighlight(what, LayerID) {
	var map = getMap();
	myLayer = map.getMapLayer(LayerID);
	curSelection = map.getSelection();
	myHighObjs = curSelection.getMapObjectsEx(myLayer);
	objsNum = myHighObjs.size();
// first loop through an uncheck all	
	for (var i = 0; i<what.elements.length; i++) {
		if (what.elements[i].name.indexOf('Chks_') !=-1){
			what.elements[i].checked = false;
		}
	}
	for (var obj = 0; obj<objsNum; obj++) {
		var myObj = myHighObjs.item(obj);
		var key = myObj.getKey();
		what.elements['Chks_' + key].checked = true;
		
		
		
//	    for (var i = 0; i<what.elements.length; i++) {
//	        if ((what.elements[i].name.indexOf('AreaChks') > -1)) {
//				if (key == what.elements[i].value) {
//	           		what.elements[i].checked = true;
//					break;
//				}
//	        }
//	    }
	}
}
/*================================================================================
Function	:creatAreaIDlist
Description	:Checks all checkboxes and combines checked values into one form field, If none are selected
			 warns users and prevents submit
Arguments	:What - Form name
Author		:Gary Morin
Date		:18/12/2000
Copyright(2000)(C) KeyGIS Limited
All Rights Reserved
================================================================================*/
function creatAreaIDlist(what) {
	var IDList = '';
    for (var i = 0; i<what.elements.length; i++) {
		
        if (what.elements[i].name.indexOf('Chks_') !=-1)
		{
            if (what.elements[i].checked) {
				IDList = IDList + "," + what.elements[i].value;
            }
        }
    }
	if (IDList.length > 1){
		document.frmArea.AreaIDS.value = IDList.substring(1,IDList.length);
		return true;
	}
	else {
		alert('Please select an area before  pressing Next...');
		return false;
	}
}