//**************************
//
//	weblogis.js
//
//**************************
//
var webRequest='weblogis'

function blockError() {return true;}       
window.onerror=blockError;

//determine webpdbsIp location
var serverLoc=""
serverLoc+=window.location.hostname
var webpdbsIP


//if (serverLoc.search(/dev_arcims.intranet.col/i) >= 0 ) 
if (serverLoc.search(/10.3.8.23/i) >= 0 ) 
	webpdbsIP='http://dev.intranet.col'
else if (serverLoc.search(/gisintra1.intranet.col/i) >= 0 )
	webpdbsIP='http://intra1.intranet.col'
else if (serverLoc.search(/loudoun.gov/i) >= 0 )
	webpdbsIP='http://inter1.loudoun.gov'
else
	webpdbsIP='http://inter1.loudoun.gov'

//alert ( serverLoc )
//if (serverLoc.search(/10.2.21.20/i) >= 0 )
// 	{
//	webpdbsIP='http://dev.intranet.col'
//	alert ( " dev " )
//	}
//else if (serverLoc.search(/10.3.19.14/i) >= 0 )
//        {
//	webpdbsIP='http://intra1.intranet.col'
//	alert ( " intra " )
//	}
//else if (serverLoc.search(/loudoun.gov/i) >= 0 )
//	{
//	webpdbsIP='http://inter1.loudoun.gov'
//	alert ( " inter " )
//	}
//else
//	{
//	webpdbsIP='http://inter1.loudoun.gov'
//	alert ( " default " )	
//	}
//alert ("FRED2")

//if (serverLoc.search(/dev_arcims.intranet.col/i) >= 0 )
//	webpdbsIP='http://dev.intranet.col'
//else if (serverLoc.search(/gisintra1.intranet.col/i) >= 0 )
//	webpdbsIP='http://intra1.intranet.col'
//else if (serverLoc.search(/loudoun.gov/i) >= 0 )
//	webpdbsIP='http://inter1.loudoun.gov'
//else
//	webpdbsIP='http://inter1.loudoun.gov'	
	           
var onStatusBlank=' onmouseout="window.status=\'\';return true"'+
' onmouseover="window.status=\'\';return true"'+
' onmousemove="window.status=\'\';return true"';

var chk=new Array() 
var layerObj=new Array() 
var queryType="";
var topLayers=7;

//set variable 'empty' for use with anchor tag.
var waitMsg=""
if (navigator.appName=="Netscape")
     var waitMsg="Please wait, response from previous request not received.\n\n To cancel request, press Esc key, followed by Ctrl+R (reload)."
else
{
	if (navigator.appVersion.search(/MSIE 6.0/i) >= 0 || navigator.appVersion.search(/MSIE 5.5/i) >= 0)
		waitMsg="Please wait, response from previous request not received.\n\n To cancel request, close browser."
	else
		waitMsg="Please wait, response from previous request not received.\n\n To cancel request, press Esc key, followed by F5 (refresh) key."
}     

var emptyLink= 'href="javascript:void(null)" '+parent.onStatusBlank;
     
var Sending=new Image(88,27)
Sending.src="/weblogis/images/sending.gif"
var subEvent= "this.src='"+Sending.src+"';this.width=88;this.height=27" 

var LayerCurr=new Image(102,25)
LayerCurr.src="/weblogis/images/lc.gif"

var LayerLink=new Image(102,25)
LayerLink.src="/weblogis/images/ll.gif"

var PINCurr=new Image(41,25)
PINCurr.src="/weblogis/images/pc.gif"

var PINLink=new Image(41,25)
PINLink.src="/weblogis/images/pl.gif"

var SearchCurr=new Image(76,25)
SearchCurr.src="/weblogis/images/sc.gif"

var SearchLink=new Image(76,25)
SearchLink.src="/weblogis/images/sl.gif"


var defaultTab="layerTab";// layerTab & PINTab & searchTab 

chk['parcels']=new chklayer("f_bparcels","ON","l_bparcels","OFF","Parcels","y","b","n","Parcels.htm")
chk['planner']=new chklayer("f_bplanner","ON","l_bplanner","ON","Map Tiles","y","b","n")
chk['majroads']=new chklayer("f_bmajroads","ON","l_bmajroads","OFF","Major Roads","n","b","n","majroads.htm")
chk['towns']=new chklayer("f_btowns","ON","l_btowns","ON","Towns","y","b","n","Towns.htm")
chk['roads_cl']=new chklayer("f_broads_cl","ON","l_broads_cl","ON","Road Centerline","y","b","n","roadCL.htm")

//land
//added rezoning, lsbg zoning, comp plan od scarlson
chk['rcasing']=new chklayer("f_brcasing","ON","l_brcasing","OFF","Road Casings","n","b","n","RoadCasing.htm")
chk['row']=new chklayer("f_brow","ON","l_brow","OFF","Right-Of-Way","n","b","n","row.htm")
chk['address']=new chklayer("f_baddress","ON","l_baddress","ON","Address Points","y","b","n","Address.htm")
chk['bldgs']=new chklayer("f_bbldgs","ON","l_bbldgs","OFF","Buildings","n","b","n","Building.htm")
chk['planduse']=new chklayer("f_bplanduse","ON","l_bplanduse","ON","Planned Use","y","b","y","planduse.htm")
chk['subdv']=new chklayer("f_bsubdv","ON","l_bsubdv","ON","Subdivision","y","b","n","subdiv.htm")
chk['zoning']=new chklayer("f_bzoning","ON","l_bzoning","ON","Zoning Current","y","b","y","Zone.htm")
chk['rezoning']=new chklayer("f_brezoning","ON","l_brezoning","ON","Rezoning","y","b","y","rezoning.htm")
chk['hzoning']=new chklayer("f_bhzoning","ON","l_bhzoning","ON","Zoning Pre 1/7/03","y","a","y","hzoning.htm")
chk['hzoning2']=new chklayer("f_bhzoning2","ON","l_bhzoning2","ON","Zoning 1/7/03 to 5/19/05","y","a","y","hzoning2.htm")
chk['lsbg_zoning']=new chklayer("f_blsbg_zoning","ON","l_blsbg_zoning","ON","Leesburg Zoning","y","b","n","lsbg_zoning.htm")
chk['comp_plan_overlays']=new chklayer("f_bcomp_plan_overlays","ON","l_bcomp_plan_overlays","ON","Comp Plan Overlays","y","b","y","comp_plan_overlays.htm")
//chk['county']=new chklayer("f_bcounty","ON","l_bcounty","OFF","Boundary","n","b","n")

//environmental
chk['pcem']=new chklayer("f_bpcem","ON","l_bpcem","ON","Cemetery","y","a","n","cemetery.htm") 
chk['vadcr']=new chklayer("f_bvadcr","ON","l_bvadcr","ON","DCR Screening1","y","a","n")//,"vadcr.htm")
chk['dcrdia']=new chklayer("f_bdcrdia","ON","l_bdcrdia","OFF","DCR Screening2","y","a","n")//,"vadcr.htm")
chk['drains']=new chklayer("f_bdrains","ON","l_bdrains","OFF","Drains: Base Map","y","b","n","BDrain.htm")
chk['sdrains']=new chklayer("f_bsdrains","ON","l_bsdrains","OFF","Drains: Soils","y","b","n","SDrain.htm")
chk['pssd']=new chklayer("f_bpssd","ON","l_bpssd","ON","Drain Fields","y","b","n","drainfield.htm")  
chk['fences']=new chklayer("f_bfences","ON","l_bfences","OFF","Fences","n","b","n","fences.htm")
chk['floods']=new chklayer("f_bfloods","ON","l_bfloods","OFF","Flood Plains","y","b","y","floods.htm")
chk['cross']=new chklayer("f_bcross","ON","l_bcross","ON","Flood Cross Sections","y","b","n","Cross.htm") 
chk['forest']=new chklayer("f_bforest","ON","l_bforest","ON","Forest Cover","y","b","y","Forest.htm")
chk['hydric']=new chklayer("f_bhydric","ON","l_bhydric","ON","Hydric Soils","y","b","y","hydric.htm")
chk['limestn']=new chklayer("f_blimestn","ON","l_blimestn","OFF","Proposed Limestone OD","y","b","y","Limestone.htm")
chk['majdrains']=new chklayer("f_bmajdrains","ON","l_bmajdrains","OFF","Major Drains","n","b","n","majdrains.htm")
chk['mtnside']=new chklayer("f_bmtnside","ON","l_bmtnside","ON","1993 Mountain Side","y","b","y","1993_mtnside.htm")
chk['pmtnside']=new chklayer("f_bpmtnside","ON","l_bpmtnside","ON","Former Mountain Side","y","a","y","fmr_mtnside.htm")
chk['polls']=new chklayer("f_bpolls","ON","l_bpolls","ON","Pollution Sources","y","b","n","pollsource.htm") 
chk['quarry']=new chklayer("f_bquarry","ON","l_bquarry","OFF","Quarry Overlay District","y","b","y","Quarry.htm")
chk['rscod']=new chklayer("f_brscod","ON","l_brscod","OFF","Former RSCOD","y","a","y","fmr_RSCOD.htm")
chk['soils']=new chklayer("f_bsoils","ON","l_bsoils","ON","Soils","y","b","y","soils.htm")
chk['slopes']=new chklayer("f_bslopes","ON","l_bslopes","ON","Steep Slopes","y","b","y","stpslopes.htm")
chk['topo']=new chklayer("f_btopo","ON","l_btopo","OFF","Topography","y","b","n","Topo.htm")
chk['trees']=new chklayer("f_btrees","ON","l_btrees","OFF","Trees","n","b","n","trees.htm")
//chk['wells']=new chklayer("f_bwells","ON","l_bwells","ON","Wells","y","b","n","wellpoll.htm")
chk['wellsa']=new chklayer("f_bwellsa","ON","l_bwellsa","ON","Wells","y","a","n","Wells.htm")
chk['wellse']=new chklayer("f_bwellse","ON","l_bwellse","ON","Wells","y","e","n","Wells.htm")
chk['water']=new chklayer("f_bwater","ON","l_bwater","OFF","Water Bodies","y","b","y","water.htm")
//chk['wellpoll']=new chklayer("f_bwellpoll","ON","l_bwellpoll","ON","Well & Pollution","y","a","n")
//QM 03/29/06 added stormwater layers
//scarlson 20070320 turned off report feature area
chk['pipes']=new chklayer("f_bpipes_and_culverts","ON","l_bpipes_and_culverts","ON","Stormwater Pipes","y","b","n","stormlines.htm")
chk['structures']=new chklayer("f_bstructures","ON","l_bstructures","ON","Stormwater Structures","y","b","n","stormpoints.htm")
chk['wet_model']=new chklayer("f_bwet_model","ON","l_bwet_model","OFF","Wetlands Model","y","b","n","Wet_Model.htm")

//boundaries
//added vcod scarlson 20070420
chk['ag_dist']=new chklayer("f_bag_dist","ON","l_bag_dist","ON","Agricultural Districts","y","b","y","AG_dist.htm")
chk['airldn']=new chklayer("f_bairldn","ON","l_bairldn","ON","Airport Noise Contours","y","b","y","airldn.htm")
chk['census2000']=new chklayer("f_bcensus2000","ON","l_bcensus2000","ON","Census - 2000","y","b","n")//,"census.htm")
chk['elect90']=new chklayer("f_belect90","ON","l_belect90","ON","Election Districts 1990","y","b","n","elect90.htm")
chk['elect00']=new chklayer("f_belect00","ON","l_belect00","ON","Election Districts 2000","y","b","n","elect00.htm")
chk['hist_dis']=new chklayer("f_bhist_dis","ON","l_bhist_dis","ON","Historic Districts","y","b","n","Hist_Dis.htm")
chk['openspac']=new chklayer("f_bopenspac","ON","l_bopenspac","OFF","Open Space Easements","n","b","y","openspac.htm")
chk['vcod']=new chklayer("f_bvcod","ON","l_bvcod","ON","Village Conservation OD","y","b","y","vcod.htm")
chk['subarea']=new chklayer("f_bsubarea","ON","l_bsubarea","ON","Planning Subareas","y","b","y","subarea.htm")
chk['policy']=new chklayer("f_bpolicy","ON","l_bpolicy","ON","Policy Areas","y","b","y","policy.htm")
//chk['lcpssite']=new chklayer("f_blcpssite","ON","l_blcpssite","ON","School Sites","y","b","n")
chk['eszones']=new chklayer("f_beszones","ON","l_beszones","ON","09 School Zones - Elementary","y","b","n","ESzones.htm")
chk['mszones']=new chklayer("f_bmszones","ON","l_bmszones","ON","09 School Zones - Middle","y","b","n","MSzones.htm")
chk['hszones']=new chklayer("f_bhszones","ON","l_bhszones","ON","09 School Zones - High","y","b","n","HSzones.htm")
chk['vtd00']=new chklayer("f_bvtd00","ON","l_bvtd00","ON","Voting Precinct 2000","y","b","n","vtprec00.htm")
chk['zipcodes']=new chklayer("f_bzipcodes","ON","l_bzipcodes","ON","Zip Codes","y","b","n","zip.htm")

//base
//scarlson 20070322 added ctproads
//chk['ctproads']=new chklayer("f_bctproads","ON","l_bctproads","ON","CTP Roads","y","b","n","ctproads.htm")
chk['majpower']=new chklayer("f_bmajpower","ON","l_bmajpower","OFF","Major Powerlines","n","a","n","majpower.htm")
chk['sasewer']=new chklayer("f_bsasewer","ON","l_bsasewer","OFF","Sewer Lines","n","a","n","lcsasewer.htm")
chk['telecom']=new chklayer("f_btelecom","ON","l_btelecom","ON","Telecommunication","y","b","n","telecom.htm")
chk['sawater']=new chklayer("f_bsawater","ON","l_bsawater","OFF","Water lines","n","a","n","lcsawater.htm")
//chk['forest_poly']= new chklayer("f_bforest_poly","ON","l_bforest_poly","ON","Forest Cover","n","a","n")

//public
chk['psfire']=new chklayer("f_bpsfire","ON","l_bpsfire","ON","Fire Station Zones","y","b","n","psfire.htm")
chk['pspolice']=new chklayer("f_bpspolice","ON","l_bpspolice","ON","Police Zones","y","b","n","pspolice.htm")
chk['psrescue']=new chklayer("f_bpsrescue","ON","l_bpsrescue","ON","Rescue Zones","y","b","n","psrescue.htm")
//chk['psstatio']=new chklayer("f_bpsstatio","ON","l_bpsstatio","ON","Stations","y","b","n")



var winPopup=null;

function winPopL(newUrl,winName,w,h) { 
var nLeft=(window.screen.availWidth-w)/2;nLeft=parseInt(nLeft)+75; 
var nTop=((window.screen.availHeight-h)/2)-50;
var newWinSpecs=""
 
if (typeof w=="undefined")/* full screen*/
	newWinSpecs='toolbar=no,menubar=yes,location=no,scrollbars=yes,status=yes,resizable=yes';
else /* popup screen*/
	newWinSpecs='location=no,toolbar=yes,resizable=yes,scrollbars=yes,menubar=no'+
    ',top='+nTop+',left='+nLeft+',width='+w+',height='+h 
	
if (winPopup)
	if ( !winPopup.closed )
		winPopup.close()
winPopup=window.open(newUrl, winName, newWinSpecs)
}
 

function getCookie(name)
{
	var nameValue=""
	var nStart, nEnd
	nStart=document.cookie.indexOf(name)
	nEnd=document.cookie.indexOf(";",nStart)
	if (nStart==-1)
		return ""
	if (nEnd==-1)
		nEnd=document.cookie.length
		
	nameValue=document.cookie.substring(nStart,nEnd)
	if (nameValue.length==0)
		return ""
	//add quotes to value then evaluate
	nameValue=nameValue.replace(/=/,"='")
	nameValue+="'"
	eval(nameValue)
	return eval(name)
}
	
//updateleft is called by map visual basic onload
function updateleft()
{
	var pld=parent.left.document;
	var pmd=parent.main.document;
	
	//alert('vb calls js: updateleft, with arg='+arguments.length)
	if (arguments.length > 0)
	{
        setGroupCheck(pmd.frmMap.MapGroups.value);
		for(i in layerObj)     
		{
		  layerObj[i].layervalue="false";
		  layerObj[i].labelvalue="false";
		}         
	     for (var i=0; i < arguments.length; i+=2)
               updateLayerChk(arguments[i],arguments[i+1]);
    }     	

	createLeftHTML(pmd.frmMap.MapGroups.value);
	parent.loadmap=true;
}


//------chklayer arguments:-------------------------------------------------------------------
//layername -code name of layer
//layerShow - "ON" shows layer checkbox,  "OFF" hides layer checkbox
//labelname - code name of label
//labelShow - "ON" shows label checkbox,  "OFF" hides label checkbox
//textdescrip - text descrip of layer, used in UI
//bIdentify - "y" to show identify feature popup
//layerTarget - "a", "e", "b", intranet layer, internet layer, or both
//bIdentifyArea - "y" if the layer is a polygon, "n" will not permit user to do an Identify area for layer
//linkfile - location of html file that describes layer.  links created for linkfile when it contains data
//-------------------------------------------------------------------------
function chklayer(layername,layerShow,labelname,labelShow,textdescrip,bIdentifyFeature,layerTarget,bIdentifyArea,linkfile)
{
	if ((typeof layername)=="undefined" )
          return
       
	this.layername=layername;
	this.layerShow=layerShow;
	
	this.labelname=labelname;
	this.labelShow=labelShow;
	
	this.textdescrip=textdescrip;
	
	this.bIdentifyFeature=bIdentifyFeature.toLowerCase();
	
	if (layerTarget=="a" || layerTarget=="e" || layerTarget=="b")
		this.layerTarget=layerTarget;
	else
		this.layerTarget="a";
		
	this.bIdentifyArea=bIdentifyArea;		

	if (linkfile==null || (typeof linkfile)=="undefined")
	     this.linkfile=''
     else
     	this.linkfile=linkfile;
     	
	this.layervalue="";
	this.labelvalue="";
}

new chklayer();
function updateLayerChk(lname, lvalue)
{
	//layer
	for(var i in layerObj)
	   if (layerObj[i].layername==lname)
	     	layerObj[i].layervalue=lvalue
		
	//label	          

	for(i in layerObj)     
	  if (layerObj[i].labelname==lname)
	       layerObj[i].labelvalue=lvalue
}

//format items in chk object for submit buttons
function getInitalLayers()
{
     var strLayers=""

     for(i in layerObj) 
     {    
	     if (layerObj[i].layervalue==true )
    		     strLayers+="&"+layerObj[i].layername+"="+layerObj[i].layervalue 
          if (layerObj[i].labelvalue==true)
    	          strLayers+="&"+layerObj[i].labelname+"="+layerObj[i].labelvalue 
     }    	 
     return strLayers;
}

//get first 5 (var topLayers) row of map layers (10 items)
//called when group layer is changed
function getInitalLayersTopLayers()
{
     var strLayers=""

     for(var i=0; i < layerObj.length && i < topLayers; i++) 
     {    
          if (layerObj[i].layervalue==true )
    		     strLayers+="&"+layerObj[i].layername+"="+layerObj[i].layervalue 
          if (layerObj[i].labelvalue==true)
    		     strLayers+="&"+layerObj[i].labelname+"="+layerObj[i].labelvalue 
     }    		             
     return strLayers;
}

function getInitialGroup()
{
var pmd= parent.main.document
     return '&LayerGroups='+pmd.frmMap.MapGroups.value;
}

chklayer.prototype.showLayerChk= function()//used by left frame
{
	var outcode=''
	if (this.layerShow=='ON' && this.layervalue==true)
		outcode+='<input CHECKED type=checkbox name="'+this.layername+'" value="true">'
	else if (this.layerShow=='ON' )
		outcode+='<input type=checkbox name="'+this.layername+'" value="true">'
	else
		outcode='&nbsp;'
	return outcode;
}

chklayer.prototype.showLabelChk= function()//used by left frame
{
	var outcode=''
	if (this.labelShow=='ON' && this.labelvalue==true)
		outcode ='<input CHECKED type=checkbox name="'+this.labelname+'" value="true">'
	else if (this.labelShow=='ON')
		outcode ='<input type=checkbox name="'+this.labelname+'" value="true">'
	else
		outcode='&nbsp;'
	return outcode;
}

chklayer.prototype.showText= function(callAction) //called by left frame and print
{
	var outcode=''
	if (callAction=="print")
		outcode=this.textdescrip
	else if (this.linkfile==''&& callAction=="leftFrame")
		//linkfile is not an html filename that points to help file
		outcode=this.textdescrip
	else if (callAction=="leftFrame")
		//hypertext link to layer files with full descriptions of layer
		outcode="<a "+ emptyLink+ 
			' onclick="'+"parent.winPopL('/weblogis/layers/"+this.linkfile+"','mapKey',300,300);return false" 
			+'">'+this.textdescrip+"</a>"
	return outcode;
}

chklayer.prototype.showIdFeature= function() //used in IdFeature popup window
{
	var outcode=''
	outcode ='<INPUT type="radio" name=IdFeatureRadio value="'+this.layername+'">'
	outcode+=' '+this.textdescrip+'<br>'
	return outcode;
}

function createLeftHTML(group)
{
  var selIndex
  var pld= parent.left.document

  if(group=="all"  || group=="default"  || group=="land" || group=="environ"|| 
     group=="boundaries"|| group=="base" || group=="public")
    {
		pld.open("text/html","replace")  
		pld.writeln('<html><head><title>Loudoun County Mapping System</title><base target="main">')
		pld.writeln('<link href="/weblogis/map.css"  type="text/css" rel="stylesheet"></head>')  

		pld.writeln('<body bgcolor="#COCOCO" topmargin="0" leftmargin="5" marginwidth="5" marginheight="0">')
		
		pld.writeln('<table cellspacing="0" cellpadding="0" border="0"  width="100%">')
		pld.writeln('<tr><td width="1" height="5"><img border="0" src="/weblogis/images/h5pixel.gif" width="1" height="5"></td></tr>')
		pld.writeln('<tr><td align="left"><img border="0" src="/weblogis/images/loudoun.gif" width="141" height="40"></td></tr>')

		pld.writeln('<tr><td align="left" class="goto">Go to: ')
		
		//pld.writeln('<a '+emptyLink+' onclick="parent.winPopL('+"'/weblogis/save.htm','',600,350);return false;"+'">Save</a> | ')

        if (location.hostname.search(/intranet.col/i) >= 0 ) 
			pld.writeln('<a '+emptyLink+' onclick="parent.winPopL('+"'/weblogis/contacts.htm','',600,350);return false;"+'">Contacts</a> | ')
		else 
			pld.writeln('<a '+emptyLink+' onclick="parent.winPopL('+"'http://www.loudoun.gov/omagi','',600,350);return false;"+'">Contacts</a> | ')
		
		pld.writeln('<a '+emptyLink+' onclick="parent.winPopL('+"'/weblogis/news.htm','',400,400);return false;"+'">News</a> | ')
		pld.writeln('<a '+emptyLink+' onclick="parent.winPopL('+"'/weblogis/help1.htm','',400,400);return false;"+'">Help</a></td></tr>')

		pld.writeln('<tr><td width="1" height="5"><img border="0" src="/weblogis/images/h5pixel.gif" width="1" height="5"></td></tr>')
		 
		//new tabs code:               
		pld.writeln('<tr><td align=left><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr>')
		
		//draw tabs
		if (parent.defaultTab=="layerTab") 
		   /*no click map layers*/
		   pld.writeln('<td width="102" height="25"><img src="'+LayerCurr.src+'" width="102" height="25" border="0"></td>') 
		else
		   /*click map layers*/
		   pld.writeln('<td width="102" height="25"><a '+emptyLink+' onclick=\"status=\'\';parent.defaultTab=\'layerTab\';parent.queryType=\'\';parent.updateleft();return false \"'+
		   ' title="click to see Layers tab"><img src="'+LayerLink.src+'" width="102" height="25" border=0></a></td>')
		   
		if (parent.defaultTab=="PINTab") 		   
			/*no click pin*/
			pld.writeln('<td width="41" height="25"><img src="'+PINCurr.src+'" width="41" height="25" border="0"></td>')
		else
		   /*click pin*/
		   pld.writeln('<td width="41" height="25"><a '+emptyLink+' onclick=\"status=\'\';parent.defaultTab=\'PINTab\';parent.queryType=\'\';parent.updateleft();return false \"'+
		   ' title="click to see PIN tab"><img src="'+PINLink.src+'" width="41" height="25" border=0></a></td>')
				   
				   
		if (parent.defaultTab=="searchTab") 		   
			/*no click search*/
		//	pld.writeln('<td width="76" height="25"><img src="'+SearchCurr.src+'" width="76" height="25" border="0"></td>')
		   pld.writeln('<td width="76" height="25"><a '+emptyLink+' onclick=\"status=\'\';parent.defaultTab=\'searchTab\';parent.queryType=\'\';parent.updateleft();return false \"'+
		   ' title="click to see Search tab"><img src="'+SearchCurr.src+'" width="76" height="25" border=0></a></td>')
		else
		   /*click search*/
		   pld.writeln('<td width="76" height="25"><a '+emptyLink+' onclick=\"status=\'\';parent.defaultTab=\'searchTab\';parent.queryType=\'\';parent.updateleft();return false \"'+
		   ' title="click to see Search tab"><img src="'+SearchLink.src+'" width="76" height="25" border=0></a></td>')
		
		pld.writeln('<td width="99%"></td>')
		pld.writeln('</tr></table></td></tr>')
		
		//new tabs code:            
		if (navigator.appName=="Netscape")          
			pld.writeln('<tr><td align="left" bgcolor="#4965CC"><table border="0"  cellpadding="0" cellspacing="2" width="100%">')
		else	   
			pld.writeln('<tr><td align="left"><table border="1" bordercolor="#4965CC" cellpadding="0" cellspacing="0" width="100%">')
		
		pld.writeln('<tr><td bgcolor="#DEDEDE">')
		
		if (parent.defaultTab=="layerTab")
		   createTabLayers(group)
		else if (parent.defaultTab=="PINTab")
		   createTabPIN()         
		else if (parent.defaultTab=="searchTab")
			{
				if (parent.queryType=="longitude")				
		   			createTabSearchLongitude()         
				else		   			
		   			createTabSearchWebpdbs()         
			}
		
		//new tabs code:               
		pld.writeln('</td></tr></table>')
		pld.writeln('</td></tr></table>')
		pld.writeln('</body></html>')

		pld.close()
		
		
		if (parent.defaultTab=="searchTab") 		   
			parent.focusInput();		

	}//end if	  
	return true;  
}

function createTabLayers(group)
{
     var pld=parent.left.document
     
     pld.writeln('<form name="frmlayer" method="get" action="/servlet/com.esri.esrimap.Esrimap?name=webdefaultlogis" onSubmit="return parent.submitLayers()">')
     pld.writeln('<input type=hidden name=name Value=webdefaultlogis>')
     pld.writeln('<input type=hidden name=app Value=GIS>')
     
     pld.writeln('<input type=hidden name=mapVal>')
     pld.writeln('<input type=hidden name=rightPins>')
     pld.writeln('<table border="0" cellpadding="3" cellspacing="0" width="100%" bgcolor="#DEDEDE">')
     
     pld.writeln('<tr><td align="left"><a class="mtitle" '+emptyLink+' onclick="parent.winPopL('+"'/weblogis/help1.htm#baselayers','',400,400);return false;"+'">Base Layers:</a></td></tr>')
     pld.writeln('<tr><td valign="top" colspan="2" align="left"><input type="image" name="Apply" src="/weblogis/images/layers.gif" border="0" width="140" height="44" title="click here to apply layers"></td></tr>')
     
     
     pld.writeln('<tr><td><table class="general" cellspacing="0" cellpadding="0" border="0" width="100%">')
	
     for (i=0; i < layerObj.length; i++)
     {
     	if (i==topLayers)  //when i=topLayers then it is Road Centerline, put in horizontal line
     	{
     	     pld.write('</table><hr>')
		     pld.writeln('<tr><td align="left"><a class="mtitle" '+emptyLink+' onclick="parent.winPopL('+"'/weblogis/help1.htm#layergroups','',400,400);return false;"+'">Layer Groups:</a></td></tr>')
		     pld.writeln('<tr><td class="general">')
		     writeGroupDropDown(group)
		
		     pld.writeln('</td></tr>')
		     pld.writeln('<tr><td valign="top" colspan="2" align="left"><input type="image" name="Apply" src="/weblogis/images/layers.gif" border="0" width="140" height="44" title="click here to apply layers"></td></tr>')

		     pld.writeln('<tr><td><table class="general" cellspacing="0" cellpadding="0" border="0" width="100%">')
//     	     pld.write('<tr><td></td><td colspan=2><hr></td></tr>')
		     
		}     	     
     	pld.writeln('<tr><td></td>')
     	pld.writeln(  '<td width="1%" nowrap valign="top" class="general">')
     	if (layerObj[i]!= "")
     	{
	     	pld.writeln(  layerObj[i].showLayerChk() )
	     	pld.writeln(  layerObj[i].showLabelChk())
     	}
     	pld.writeln(  '</td>')
     
		pld.writeln(  '<td nowrap width="99%" valign="middle" class="general">' )
     	if (layerObj[i]!= "")
	     	pld.writeln(  layerObj[i].showText("leftFrame") )
     	pld.writeln('</td></tr>')
     }
     pld.writeln('</table>')
     
	pld.writeln('</td></tr>')

	pld.writeln('<tr><td width="1" height="5"><img border="0" src="/weblogis/images/h5pixel.gif" width="1" height="5"></td></tr>'); 
	pld.writeln('<tr><td align="center"><input type="image" name="Apply" src="/weblogis/images/apply.gif" border="0" width="65" height="27" onclick="eval(parent.subEvent);return true"></td></tr>')
	//pld.writeln('<tr><td width="1" height="5"><img border="0" src="/weblogis/images/h5pixel.gif" width="1" height="5"></td></tr>')
	pld.writeln('</table>')
	pld.write('</form>')
}

//setGroupCheck is used by left frame & print button
function setGroupCheck(group)
{
	if (layerObj.length > 0 )
		layerObj.length=0; //shrink array
	
	//layers common to all groups:
	layerObj=[chk['parcels'],chk['planner'],chk['majroads'],chk['towns'],chk['roads_cl'], chk['address'],chk['bldgs']]
 	//Removed slopes in "all" and "environ" by QM 08/08/06
	// restored slopes in "all" and "environ" by mfauss 070126
	// added vcod, rezonings in 'all' scarlson 20070423
	// added ctproads in 'all' and 'base' scarlson 20070514
 	if (group=="all")	
		//layerObj=layerObj.concat(chk['county'],chk['bldgs'],chk['subdv'],chk['zoning'],
		layerObj=layerObj.concat(chk['ag_dist'],chk['airldn'],chk['pcem'],
		chk['census2000'],chk['comp_plan_overlays'],chk['drains'],chk['sdrains'],chk['pssd'],chk['elect90'],chk['elect00'],chk['fences'],chk['psfire'],chk['floods'],chk['cross'],
		chk['forest'],chk['hist_dis'],chk['hzoning'],chk['hydric'],chk['lsbg_zoning'],chk['limestn'],chk['majdrains'],chk['majpower'],
		chk['mtnside'],chk['openspac'],chk['polls'],chk['rscod'],chk['subarea'],chk['policy'],chk['planduse'],chk['pspolice'],chk['quarry'],chk['psrescue'],
		chk['rezoning'],chk['row'],chk['rcasing'],chk['eszones'],chk['mszones'],chk['hszones'],chk['sasewer'],
		chk['soils'],chk['slopes'],chk['pipes'],chk['structures'],chk['subdv'],chk['telecom'],chk['topo'],chk['trees'],
		chk['vcod'],chk['vtd00'],chk['sawater'],chk['water'],chk['wellse'],chk['wellsa'],chk['wet_model'],chk['zipcodes'],chk['zoning'])

	else if (group=="land")	
		layerObj=layerObj.concat(chk['comp_plan_overlays'],chk['lsbg_zoning'],chk['planduse'],chk['rezoning'],chk['row'],chk['rcasing'],chk['subdv'],chk['hzoning'],chk['hzoning2'],chk['zoning'])
	
	else if (group=="environ")
	         //layerObj=layerObj.concat(chk['pcem'],
		layerObj=layerObj.concat(chk['pcem'],chk['vadcr'],chk['dcrdia'],
		chk['drains'],chk['sdrains'],chk['pssd'],chk['fences'],chk['floods'],chk['cross'],chk['forest'],chk['hydric'],chk['limestn'],chk['majdrains'],
		chk['mtnside'],chk['pmtnside'],chk['polls'],chk['quarry'],chk['rscod'],chk['rcasing'],chk['soils'],chk['slopes'],chk['pipes'],chk['structures'],chk['topo'],chk['trees'],chk['water'],chk['wellsa'],chk['wellse'],chk['wet_model'])

	else if (group=="boundaries")	
		layerObj=layerObj.concat(chk['ag_dist'],chk['airldn'],chk['census2000'],chk['elect90'],chk['elect00'],chk['hist_dis'],chk['openspac'],
		chk['subarea'],chk['policy'],chk['rcasing'],chk['eszones'],chk['mszones'],chk['hszones'],chk['vcod'],chk['vtd00'],chk['zipcodes'])

	else if (group=="base")	
		layerObj=layerObj.concat(chk['fences'],chk['majpower'],chk['rcasing'],chk['sasewer'],chk['telecom'],chk['sawater'])

	else if (group=="public")	
		layerObj=layerObj.concat(chk['drains'],chk['psfire'],chk['pspolice'],chk['psrescue'],chk['rcasing'],chk['water'])
		
	//remove layers from layerObj depending on internet or intranet
	//1.determine if inter or intra ip
	//2.remove layers
	var serverLoc=""
	serverLoc+=location.hostname
	var bIntraInter=(serverLoc.search(/intranet.col/i) >= 0 )
	//bIntraInter=true  //use this line to simulate intranet on development turn it off to compile programs mfauss scarlson

     for (var i=0; i < layerObj.length; i++)
          if ( (layerObj[i].layerTarget=="a" && bIntraInter==false) //internet session, remove layer, because not internet layer
               || (layerObj[i].layerTarget=="e" && bIntraInter==true)) //intranet session, remove layer, because not intranet layer
              layerObj[i]=""
	
}

function writeGroupDropDown(group)
{
	var selItem=new Array(6) 
	var selValue =new Array(6)
	var selIndex =0;
	var i
	
	selValue[0]="all"
	selValue[1]="base"
	selValue[2]="boundaries"
	selValue[3]="environ"
	selValue[4]="land"
	selValue[5]="public"

	for (i=0;i< selItem.length; i++)
		selItem[i]=" "

	for (i=0;i < selValue.length; i++)
		if (group==selValue[i])
		{
			selIndex=i;
			break;
		} 
	
	selItem[selIndex]="selected"
	
     parent.left.document.writeln('<select class="general" size="1" name="LayerGroups" '+
					   'onchange="parent.GetNewMap()"> '+
						   '<option '+selItem[0]+' value="'+selValue[0]+'">All</option>'+
						   '<option '+selItem[1]+' value="'+selValue[1]+'">Base Map</option>'+
						   '<option '+selItem[2]+' value="'+selValue[2]+'">Boundaries</option> '+
						   '<option '+selItem[3]+' value="'+selValue[3]+'">Environmental</option>'+
						   '<option '+selItem[4]+' value="'+selValue[4]+'">Land Records</option> '+
						   '<option '+selItem[5]+' value="'+selValue[5]+'">Public Safety'+
						   '</option></select>')
	   
	selItem.length= 0; //shrink array
	selValue.length=0;//shrink array
}

//get all form properties and send to server
function GetNewMap()
{
if ( parent.loadmap==false)
{	window.alert(waitMsg)
	return false;
}		

var pld=parent.left.document
var grp=pld.frmlayer.LayerGroups.options[pld.frmlayer.LayerGroups.selectedIndex].value

var strChangeLayer="&LayerGroups="+grp+getInitalLayersTopLayers()+GetMapValues()+GetMapValuesLongitude()+GetPINS() 

parent.loadmap=false

parent.window.main.location="/servlet/com.esri.esrimap.Esrimap?name=webdefaultlogis&app=GIS" 
   +strChangeLayer
}


//function to check all or clear all
function checkAll(theForm,checkAction)
{
	//checkAction is true when you want all checkboxes checked 
	for (var i=0; i < theForm.elements.length; i++)
	{ 
		if (theForm.elements[i].type=="checkbox")
		   {
			if (checkAction==true)
				theForm.elements[i].checked=true
			else
				theForm.elements[i].checked=false
		   }
	}
 }


function createTabPIN()
{
	var pld=parent.left.document
	var pm=parent.main;
	 
	//frmPinFetch
	pld.writeln('<form name="frmPinFetch" method="get" target="main" action="/servlet/com.esri.esrimap.Esrimap?name=webdefaultlogis" onsubmit="if(parent.submitPINAndMapForm1()==true) return true; else return false">')
	
	pld.writeln('<input type=hidden name=name value=webdefaultlogis>')
	pld.writeln('<input type=hidden name=app value=GIS>')
	pld.writeln('<input type=hidden name=mapVal>')
	pld.writeln('<input type=hidden name=leftLayer>')
    pld.writeln('<table cellspacing="0" cellpadding="3" bgcolor="#DEDEDE" width="100%"><tr><td><a class="mtitle" '+emptyLink+' onclick="parent.winPopL('+"'/weblogis/help1.htm#pinormap','',400,400);return false;"+'">PIN or Map Tile:</a></td></tr>')
	
	
	pld.writeln('<tr><td><input type="text" name="pinmap" size="18" maxlength="18"></td></tr>')
	pld.writeln('<tr><td><input type="image" name="Fetch" src="/weblogis/images/fetch.gif" border="0" width="65" height="27" onclick="if (parent.validateFetch() ) {eval(parent.subEvent);return true} else return false"></td></tr>')
	
	pld.writeln('</form></td></tr>')
	pld.writeln('<tr><td width="100%"><hr align="left"><img border="0" src="/weblogis/images/h5pixel.gif" width="1" height="5"></td></tr>') 
	
	//frmPinList
	pld.writeln('<tr><td><form name="frmPinList" method="get" onsubmit="return false">')
	pld.writeln('<input type=hidden name=name value="webdefaultlogis">')
	pld.writeln('<input type=hidden name=currentYear value="'+parent.currentYear+'">')
	pld.writeln('<input type=hidden name=app value="GIS">')
	pld.writeln('<input type=hidden name=leftLayer>')
	pld.writeln('<input type=hidden name=mapVal>')

	//writePinTable for	Update Map button
    pld.writeln('<a class="mtitle" '+emptyLink+' onclick="parent.winPopL('+"'/weblogis/help1.htm#mappins','',400,400);return false;"+'">Map PIN\'s:</a></td></tr>')

	pld.writeln('<tr><td>')
	writePINTable() ; 
	pld.writeln('</td></tr>')
	pld.writeln('<tr><td>')
	pld.write('</td></tr></form>')
	
	//form submit for updatemap button
	var action="http://"+serverLoc+"/servlet/com.esri.esrimap.Esrimap?name=webdefaultlogis";
	var subval="parent.subFormPinList('"+action+"','main')"
    pld.writeln('<form name="frmUpdateMap" onsubmit="parent.submitPINAndMapForm2();'+subval+';return false">')
	pld.writeln('<tr><td><input type="image" name="UpdateMap" src="/weblogis/images/updatemap.gif" border="0" width="88" height="27" onclick="eval(parent.subEvent);return true">');
	pld.write('</td></tr></form>')

	//form submit for see assessment button
	action=parent.webpdbsIP+ "/taxadmin/webpdbs2008/default.aspx"   // new address mfauss - scarlson
	//action=parent.webpdbsIP+ "/cgi-bin/db2www.exe/webpdbs/re.d2w/INDEX?"  // original address mfauss
    subval= "parent.subFormPinList('"+action+"','_top');return false"
    pld.writeln('<form name="frmWebpdbs" onsubmit="'+subval+'">')
	pld.writeln('<tr><td><input type="image" name="Search" src="/weblogis/images/assess.gif"  border="0" width="127" height="27">')
	pld.writeln('</td></tr></form>')
	pld.writeln('</table>')
}


function createTabSearchWebpdbs()
{
	var pld=parent.left.document
    pld.writeln('<table cellspacing="0" cellpadding="3" bgcolor="#DEDEDE" width="100%"><tr><td>')
    
	if (parent.queryType=="")
		parent.writeLeftWebPDBS()
	else 
	 	parent.writeQueryPDBS(parent.queryType)
	 	
	pld.writeln('</td></tr></table>')
}

function createTabSearchLongitude()
{
	var pld=parent.left.document
	var pm=parent.main.document.frmMap;
	var spaces="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
	 
	//frmLongitude
	pld.writeln('<form name="frmLongitude" method="get" target="main" action="/servlet/com.esri.esrimap.Esrimap?name=webdefaultlogis" onsubmit="if(parent.submitLongitude()==true) return true; else return false">')
	
	pld.writeln('<input type=hidden name=name value=webdefaultlogis>')
	pld.writeln('<input type=hidden name=app value=GIS>')
	pld.writeln('<input type=hidden name=mapVal>')
	pld.writeln('<input type=hidden name=leftLayer>')
	pld.writeln('<input type=hidden name=rightPins>')

	pld.writeln('<input type=hidden name=zoomdegree value="1">')
    pld.writeln('<br><table cellspacing="0" cellpadding="3" bgcolor="#DEDEDE" width="100%"><!--tr><td><b><font face="Arial" size="2">Zoom to Point:</font></b></td></tr-->')
	
	//degree, minute, second
	//x=longitude, y=latitude 
	
	pld.write('<tr><td><b><font face="Arial" size="2"><input type="radio" value="DMS" name="degreetype"')
	if (pm.degreetype.value == "DMS")
		pld.write(" checked ")
	pld.writeln('>DMS</font></b></td></tr>')
	
	pld.writeln('<tr><td><b><font face="Arial" size="2">'+spaces+'Longitude:</font></b><br>')
	pld.writeln(spaces+'<input type="text" name="DDX" value="'+pm.DDX.value+'" size="2" maxlength="2">')
	pld.writeln('<input type="text" name="DMX" value="'+pm.DMX.value+'" size="2" maxlength="2">')
	pld.writeln('<input type="text" name="DSX" value="'+pm.DSX.value+'" size="2" maxlength="2"><br>')

	pld.writeln('<b><font face="Arial" size="2">'+spaces+'Latitude:</font></b><br>')
	pld.writeln(spaces+'<input type="text" name="DDY" value="'+pm.DDY.value+'" size="2" maxlength="2">')
	pld.writeln('<input type="text" name="DMY" value="'+pm.DMY.value+'" size="2" maxlength="2">')
	pld.writeln('<input type="text" name="DSY" value="'+pm.DSY.value+'" size="2" maxlength="2"><br>&nbsp;</td></tr>')
	
 
	pld.write('<tr><td><b><font face="Arial" size="2"><input type="radio" value="decimal" name="degreetype"')
	if (pm.degreetype.value == "decimal")
		pld.write(" checked ")
	pld.writeln('>Decimal Degree</font></b></td></tr>')
	
	pld.writeln('<tr><td><b><font face="Arial" size="2">'+spaces+'Longitude:</font></b><br>'+spaces+'<input type="text" name="DX" value="'+pm.DX.value+'" size="9" maxlength="9"><br>')
	pld.writeln('<b><font face="Arial" size="2">'+spaces+'Latitude:</font></b><br>')
	pld.writeln(spaces+'<input type="text" name="DY" value="'+pm.DY.value+'" size="9" maxlength="9"><br>&nbsp;</td></tr>')

	pld.write('<tr><td><b><font face="Arial" size="2"><input type=checkbox name="rescue" checked value="true">')
	pld.write('Fire & Rescue Dept.</font></b></td></tr>')

	//submit 
	pld.writeln('<tr><td><input type="image" src="/weblogis/images/submit.gif" border="0" width="65" height="27" onclick="if (parent.validateLongitude() ) {eval(parent.subEvent);return true} else return false">')
	pld.writeln('<input type="image" src="/weblogis/images/reset.gif" border="0" width="65" height="27" onclick="parent.resetLongitude();return false;"></td></tr>')

    pld.write('<tr><td><br><a '+emptyLink+' onclick="parent.winPopL('+"'/weblogis/example_longitude.htm','',400,400);return false;"+'">')
	pld.write('<font face="Arial" size="2"><em><b>click here to see examples<\/b><\/em><\/font><\/a><br><br>')
	pld.writeln('<\/form><a href="javascript:void(null)" onclick="parent.queryType=\'\';parent.updateleft();return false" target="left" title="left frame will go back "'+parent.onStatusBlank+'><font face="Arial" size="2"><em><b>back to Search by<\/b><\/em><\/font><\/a><br>&nbsp;');

	pld.writeln('</td></tr></table>')


	
}

function subFormPinList(submitTo,targetVal)
{
	var pldf=parent.left.document.frmPinList;
	pldf.action=submitTo;
	pldf.target=targetVal;
	pldf.submit();
}


function writePINTable()	
{
	var pld=parent.left.document
	var pm=parent.main
	
	if ((typeof parent.main.pins)=="undefined")
		return;

	pld.writeln('<input type="hidden" name="pincount" value="'+parent.main.pins+'">')

	pld.writeln('<table class="pin" border="0" cellpadding="0" cellspacing="0" width="100%">')
	pld.writeln('<tr><td width="1%" class="pin">')
	pld.writeln('<input type="checkbox" checked onclick="if (this.checked==true) parent.checkAll(frmPinList,true); else	parent.checkAll(frmPinList,false);">&nbsp;</td>')
	pld.writeln('<td width="99%" class="pin">check all or clear all</td></tr>')


	//sort
     var newPinList=""
	for (var i=1; i <= pm.pins; i++)
	{
	     newPinList+="pm.p"+i+","+"pm.a"+i 
	     if (i < pm.pins)
	          newPinList+=","
     }	     

	 sortNumeric=true
     eval("arrayToSort("+newPinList+")")
	
	//show on screen
     //sLst filled by arrayToSortNumeric()
     for (var i =0 ; i < sLst.length; i++)
	{
		pld.writeln('<tr><td width="1%" class="pin">')
		pld.writeln('<input type="checkbox" name="pin'+parseInt(i+1)+'" value="'+sLst[i].item1+'" checked >&nbsp;</td>')
		pld.writeln('<td width="99%" class="pin" >')
		
		//add leading zeros
        while (sLst[i].item1.length < 9) 
	          sLst[i].item1='0'+sLst[i].item1
		
		if (sLst[i].item2.length > 0 )
			//pin & address
			pld.writeln('PIN: '+sLst[i].item1+'<br>'+sLst[i].item2.toLowerCase().replace(/\ va 2/g,", VA 2")+'</td></tr>')
		else	    
			//pin only
			pld.writeln('PIN: '+sLst[i].item1+'</td></tr>')
	}

	pld.writeln('</table>')
	return
}

function IdentifyWhatFeature()
{
	var pld=parent.left.document
	var pmd= parent.main.document
	
	if (pmd.frmMap.cm.options[pmd.frmMap.cm.selectedIndex].value != "cm_IdentifyArea" && 
            pmd.frmMap.cm.options[pmd.frmMap.cm.selectedIndex].value !="cm_IdentifyFeature")
	     return true
	     
	if (parent.main.document.frmMap.IdFeature.value != "")     
		return true 
	
	//get count of checked items
	var cntChecked=0
	if (pmd.frmMap.cm.options[pmd.frmMap.cm.selectedIndex].value == "cm_IdentifyArea")	
		for ( i in layerObj)
			if (layerObj[i].layervalue==true && layerObj[i].bIdentifyArea=='y')
				cntChecked++
	if (pmd.frmMap.cm.options[pmd.frmMap.cm.selectedIndex].value == "cm_IdentifyFeature")	
		for ( i in layerObj)
			if (layerObj[i].layervalue==true && layerObj[i].bIdentifyFeature=='y')
				cntChecked++
				
	if ( cntChecked==0)
	{
		if (pmd.frmMap.cm.options[pmd.frmMap.cm.selectedIndex].value == "cm_IdentifyArea")	
				alert('Selected layers are not available for Report Feature Area')	
		else if (pmd.frmMap.cm.options[pmd.frmMap.cm.selectedIndex].value == "cm_IdentifyFeature")	
				alert('Selected layers are not available for Identify Feature')	
				
		return false;
	}
	
	var winHeight
	if (cntChecked <= 3)
		winHeight=250;
	else if (cntChecked <= 6)
		winHeight=300;
	else if (cntChecked <= 9)
		winHeight=400;
	else
		winHeight=480; //max due to 640x480

	var w=200
	var nLeft=(window.screen.width-w)/2
	var nTop=((window.screen.height-winHeight)/2)-20
	
	var newWinSpecs='toolbar=no,status=no,menubar=no,resizable=yes'+
	    ',top='+nTop+',left='+nLeft+',width='+w+',height='+winHeight
	
	var newWin =window.open('','idFeature',newWinSpecs);
	
	newWin.document.writeln("<html><head><title>Select Layer</title>")
	newWin.document.writeln("<style>.popBody {font-family: Arial, Verdana, san-serif;"+
			 "font-size: 10pt; text-align: left; vertical-align: top; }  ")
	newWin.document.writeln(".mtitle {font-family : Arial, Verdana, san-serif; "+
			 "font-size: 12pt; font-weight: bold; }</style>");
	newWin.document.writeln("</head>")
	newWin.document.writeln("<body bgcolor='#COCOCO'><div class=mtitle>Select one, click OK then click on map:</div><br><form name=frmIdFeature>")
	//-look at parent.layer and see what is checked, show those checked values as radio buttons
	//-get layer names, write a radio button
	newWin.document.writeln("<div class=popBody>");
	
	//Find element name in the object chk, then write output line.
	//Do this for chk object that have this.bIdentify==y
	if (pmd.frmMap.cm.options[pmd.frmMap.cm.selectedIndex].value == "cm_IdentifyFeature")	
		for ( i in layerObj )
			if (layerObj[i].layervalue==true  &&  layerObj[i].bIdentifyFeature=='y')
				newWin.document.writeln( layerObj[i].showIdFeature()  )

	if (pmd.frmMap.cm.options[pmd.frmMap.cm.selectedIndex].value == "cm_IdentifyArea")	
		for ( i in layerObj )
			if (layerObj[i].layervalue==true  &&  layerObj[i].bIdentifyArea=='y')
				newWin.document.writeln( layerObj[i].showIdFeature()  )

	newWin.document.writeln('<INPUT type="hidden" name="IdFeatureRadio">')
	newWin.document.writeln('<INPUT type="hidden" name="cntChecked" value="'+cntChecked+'">')

	newWin.document.writeln("</div>");
	
	newWin.document.writeln("<br><input type='submit' value='OK' "+
			   "onclick='for (i=0; i < document.frmIdFeature.cntChecked.value; i++){ "+
				 " if (document.frmIdFeature.IdFeatureRadio[i] != \"undefined\" )  "+
				 " if (document.frmIdFeature.IdFeatureRadio[i].checked==true )  "+
				    "opener.parent.main.document.frmMap.IdFeature.value=document.frmIdFeature.IdFeatureRadio[i].value; "+
				    "} window.close()'>")
	newWin.document.writeln("&nbsp;&nbsp;<input type='button' value='Cancel' onclick='window.close()'>")
	newWin.document.writeln("</form></body></html>")
	newWin.document.close()
	newWin.focus()
	newWin.document.frmIdFeature.IdFeatureRadio[0].focus()

	return false
}

function GetMapValues()
{
	//get the current values from map
	var strMap=""
	var pmd= parent.main.document

	//get left, bottom, right, top from map
	strMap="&Left="+pmd.frmMap.Left.value
	strMap+="&Bottom="+pmd.frmMap.Bottom.value
	strMap+="&Right="+pmd.frmMap.Right.value
	strMap+="&Top="+pmd.frmMap.Top.value
	
	//get cm from map
	strMap+="&cm="+pmd.frmMap.cm.options[pmd.frmMap.cm.selectedIndex].value;
	
	//get zm from map
	//zm is a radio, loop & see which is checked
	for (var i=0; i < pmd.frmMap.zm.length; i++) 
		if (pmd.frmMap.zm[i].checked==true)
		  strMap+="&zm="+pmd.frmMap.zm[i].value
		  
	strMap+="&MeasureTool="+pmd.frmMap.MeasureTool.value

	return strMap
}


function GetMapValuesLongitude()
{
	var strMap=""
	var pmd= parent.main.document
	
	if (pmd.frmMap.zoomdegree.value > 0)
		strMap+="&zoomdegree=3"
	else
		strMap+="&zoomdegree="+pmd.frmMap.DDX.value
		
	strMap+="&DDX="+pmd.frmMap.DDX.value+"&DMX="+pmd.frmMap.DMX.value+"&DSX="+pmd.frmMap.DSX.value
	strMap+="&DDY="+pmd.frmMap.DDY.value+"&DMY="+pmd.frmMap.DMY.value+"&DSY="+pmd.frmMap.DSY.value
	strMap+="&DX="+pmd.frmMap.DX.value+"&DY="+pmd.frmMap.DY.value

	return strMap
}

function GetPINS()
{
	var pm=parent.main;
	var strPinList="";

	for (var i=1; i <= pm.pins; i++)
		strPinList+="&pin"+i+"="+eval("pm.p"+i);

	if (strPinList.length > 0 )
		strPinList+='&pincount='+pm.pins;
     return strPinList;
}

//supply hidden variable for submit buttons
//called by left layers Apply button
function submitLayers()
{
//page must be loaded before hitting any submit buttons
	if ( parent.loadmap==false)
	{	window.alert(waitMsg)
		return false;
	}		
	
	var pld=parent.left.document
	pld.frmlayer.mapVal.value=GetMapValues()+GetMapValuesLongitude()
	pld.frmlayer.rightPins.value=GetPINS()
	parent.loadmap=false
	return true
}

function submitLeftAndMap()
{//called by center map
	if (parent.IdentifyWhatFeature()==false) 
	{
//		alert("Please select layer, and click Apply button. Identify Area only works on polygon data like Flood Plains or Zoning.");
		return false; 
	}		
	else if ( parent.loadmap==true)
	{
		var pmd=parent.main.document;
		
		pmd.frmMap.target="main";
		pmd.frmMap.leftLayer.value=getInitialGroup()+getInitalLayers();
		
		var cmSelected=pmd.frmMap.cm.options[pmd.frmMap.cm.selectedIndex].value;
		
		if (cmSelected=="cm_ZoomIn" || cmSelected=="cm_ZoomOut" || cmSelected=="cm_Pan" ||
			cmSelected=="cm_DoMeasure" || cmSelected=="cm_ZoomTo50" || cmSelected=="cm_ZoomTo200" ||
			cmSelected=="cm_ZoomTo400" || cmSelected=="cm_ZoomTo600" )		
			pmd.frmMap.rightPins.value=GetPINS()  ;
		
		parent.loadmap=false;
		return true;
	}	
	else 
	{
		if ( parent.loadmap==false)
			window.alert(waitMsg)
		return false;
	}		
	
}	


function validateFetch()
{
	var pld=parent.left.document;
	
	if (pld.frmPinFetch.pinmap.value.length==0)
		{
			window.alert('Please enter PIN or Map Tile');
			pld.frmPinFetch.pinmap.focus();
			return false;
		}
	return true;				
}	

function msgLongitude(obj, field)
{
	alert("Please "+ field);
	obj.select();
	return false;
}
	
function validateLongitude()
{
	//if everything is zero then no data has been entered
	var pldf=parent.left.document.frmLongitude;
	
	if (pldf.degreetype[0].checked==true ) {
		if ( len0(pldf.DDX) || len0(pldf.DMX) || len0(pldf.DSX) || 
	     	 len0(pldf.DDY)|| len0(pldf.DMY)|| len0(pldf.DSY) )
			return msgLongitude(pldf.DDX,'enter Longitude/Latitude')}
	else if (pldf.degreetype[1].checked==true){
	    if ( len0(pldf.DX)|| len0(pldf.DY))
			return msgLongitude(pldf.DX,'enter Longitude/Latitude')}
	else
		return msgLongitude(pldf.DDX,'select DMS or Decimal Degree')
	return true;				
}

function len0(obj)
{
	if ( obj.value.length ==0)
	{
		obj.focus();
		obj.select();
		return true;				
	}
	return false;
}

function submitPINAndMapForm1()
{//called by PIN input box
	//supply hidden variable for Fetch button
	if ( parent.loadmap==true)
	{
		var pld=parent.left.document;
		
		if (validateFetch() == false)
				return false;

		var pinmap=""
		pinmap+=pld.frmPinFetch.pinmap.value
		pinmap= pinmap.replace(/-/g,"")
		
		pld.frmPinFetch.pinmap.value=pinmap.substr(0,9)
	
		pld.frmPinFetch.leftLayer.value=getInitialGroup()+getInitalLayers();
		pld.frmPinFetch.mapVal.value=GetMapValues();
		parent.loadmap=false;
		return true;
	}	
	else 
	{
		if ( parent.loadmap==false)
			window.alert(waitMsg)
		return false;
	}		
}	

function submitPINAndMapForm2()
{//called by PIN checkbox form
	//supply hidden variable for Update Map button
	if ( parent.loadmap==true)
	{
		var pld=parent.left.document;
		pld.frmPinList.leftLayer.value=getInitialGroup()+getInitalLayers();
		pld.frmPinList.mapVal.value=GetMapValues();
		parent.loadmap=false;
	}
	else 
		if ( parent.loadmap==false)
			window.alert(waitMsg)
	
}	

function submitLongitude()
{//called by 3rd tab, Longitude and Latitude
//page must be loaded before hitting any submit buttons
	if ( parent.loadmap==true)
	{
		if (validateLongitude() == false)
				return false;

		var pld=parent.left.document;
		pld.frmLongitude.leftLayer.value=getInitialGroup()+getInitalLayers();
		pld.frmLongitude.mapVal.value=GetMapValues()
		pld.frmLongitude.rightPins.value=GetPINS()
		
		parent.loadmap=false;
		return true;
	}	
	else 
	{
		if ( parent.loadmap==false)
			window.alert(waitMsg)
		return false;
	}		
}	



var printPop=null;

function printNewWin()
{
	if (printPop)
		if ( !printPop.closed )
			printPop.close()
 
	printPop=window.open('','newWin1','toolbar=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=400,height=300')
	printPop.document.write('<html><head><title>Loudoun County Mapping System - Print</title></head>'+
	'<body bgcolor="#COCOCO" >Getting map suitable for printing...</body></html>');
    printPop.document.close();
	parent.main.document.frmMap.target="newWin1";
}	

function getPrtTitle(group, maplayer)
{
     if (maplayer=="" || group=="")
          return ""
          
     var strRet=""          
     
     setGroupCheck(group)     
     for (i=0; i < layerObj.length; i++)
          if (maplayer==layerObj[i].layername)
          {
               strRet=layerObj[i].showText("print");
               break;
          }               
     return strRet;          
}	

//sLst filled by call to arrayToSort
function getLegend(group, maplayer,ppreview)
{
     var strRet=""
     var minRows=4
     var cols=4
     var breakAt=0
     var cellCount=sLst.length
     //get the cellCount.  when cellCount are over minRows then break table
     if (cellCount > minRows)
     {
          breakAt=parseInt(cellCount/cols)
          //add 1 to breakAt when cellCount is odd number.
          if ( (cellCount % cols) > 0 )      //ex.  15 % 4=3.75 
               breakAt++
     }
     else
          breakAt=cellCount++   
          
     if (ppreview=="true")         
	     strRet+="<table class='prtTable' align='center' border='1' cellpadding='3' cellspacing='0'>";
     else
	{
	     strRet+="<img src='/weblogis/images/blank92x1.gif' align='left' width='92' height='1'>"         
	     strRet+="<table class='prtTable' align='left' border='1' cellpadding='3' cellspacing='0'>";
	}     
     strRet+="<tr><th class='prtTable'>"+parent.getPrtTitle(group,maplayer)+"</th></tr>";
     strRet+="<tr><td><table class='prtTable' align='center'><tr><td valign='top'><table class='prtTable'>";
          
     for (var i =0 ; i < sLst.length; i++)
     {
          //split table 
          if ( (i % breakAt)==0  && i !=0)
               strRet+="</table></td><td valign='top'><table>";
               
          strRet+="<tr><td nowrap class='prtTable'><img src='/images/"+sLst[i].item2+"'> " 
        +sLst[i].item1+"&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>";
     }

     strRet+="</table></td></tr></table></td></tr></table>";
     return strRet;
}          

/*************************************************************/
var sLst=new Array() //sLst is the sorted list

function sortedList(item1, item2)
{
     this.item1=item1
     this.item2=item2
}

new sortedList();
    
//arraryToSort receives a comma delimited  string
var sortNumeric=false;
function arrayToSort()
{
     //sort first col of two col list
     var sortCol1=new Array()
     sLst.length=0; //shrink array
	for (var i=0, k=0; i < arguments.length; i+=2, k++)
          sortCol1[k]=arguments[i]
    
    if (sortNumeric)      
		sortCol1.sort(function(a,b) { return a-b;});  //numerical sort - p159 o'reilly-flanagan
    else
      sortCol1.sort();
     
     //match sortCol1 in legendlist
	for (var i=0; i < sortCol1.length; i++)
	     for (var k=0; k < arguments.length; k+=2)
	          if (sortCol1[i]==arguments[k])
                    sLst[i]=new sortedList(arguments[k], arguments[k+1])
    sortNumeric=false;
}  


function resetLongitude()
{
	var pldf=parent.left.document.frmLongitude;
	var pm=parent.main.document.frmMap;
	
	pldf.degreetype[0].checked = false
	pldf.degreetype[1].checked = false
	
	pldf.DDX.value = ""
	pldf.DMX.value = ""
	pldf.DSX.value = ""
	pldf.DDY.value = ""
	pldf.DMY.value = ""
	pldf.DSY.value = ""
	pldf.DX.value = ""
	pldf.DY.value = ""

	pm.DDX.value = ""
	pm.DMX.value = ""
	pm.DSX.value = ""	
	pm.DDY.value = ""
	pm.DMY.value = ""
	pm.DSY.value = ""
	pm.DX.value = ""
	pm.DY.value = ""
	pm.degreetype.value=""
}

