/*
Copyright Greenwood Mapping, Inc.
www.greenwoodmap.com

Includes customized portions of OpenLayers.js
Copyright 2005-2008 MetaCarta, Inc., released under the Clear BSD license.
Please see http://svn.openlayers.org/trunk/openlayers/license.txt
for the full text of the license.

*/

var map=null;var lyrMapservFore=null;var lyrQuery=null;var panel=null;var rwg={jpegLayers:{},infoLayers:{},mapservLayerList:{},filter:"",qlayer:"",unSelectButton:null,legendHandler:function(name,state){rwg.mapservLayerList[name]=state;var layers="";var imagetype="gif";for(var layer in rwg.mapservLayerList){if(rwg.mapservLayerList[layer]){layers+=layer+" ";if(layer in rwg.jpegLayers){imagetype="jpeg";}}}
lyrMapservFore.mergeNewParams({layers:layers,map_imagetype:imagetype});map.events.triggerEvent("moveend");},search:function(){var url,infoWin,ts=document.searchForm.ts.value;if(ts=='search'||ts===''){url='search.html';}else{url='list.php?ts='+ts;}
infoWin=window.open(url,"info","width=660,height=390,resizable=yes,scrollbars=yes");if(!infoWin){alert("Unable to open the Search Window.\nBe sure that popups are not being blocked for this site.");}else{infoWin.focus();}},jump2:function(ext){var coords=ext.split(" ");map.zoomToExtent(new OpenLayers.Bounds(parseFloat(coords[0]),parseFloat(coords[1]),parseFloat(coords[2]),parseFloat(coords[3])));},addLayers:function(layers){var addlayers=layers.split(" ");for(var i in addlayers){legend.check(addlayers[i])
legend.collapse(addlayers[i])}},init:function(){rwg.longLatInitialize();map=new OpenLayers.Map("map",{maxExtent:rwg.fullExtent,minScale:2000000,maxScale:700,controls:[],fractionalZoom:true,maxResolution:"auto",units:"ft",projection:rwg.projection});lyrMapservFore=new OpenLayers.Layer.MapServer(null,rwg.ms_map_url,{layers:'',map_imagetype:'gif'},{isBaseLayer:true,singleTile:true,ratio:1,transitionEffect:'resize',units:'ft',projection:rwg.projection});lyrQuery=new OpenLayers.Layer.MapServer(null,"",{layers:'ownershipq',transparent:true},{isBaseLayer:false,visibility:false,singleTile:true,ratio:1,displayInLayerSwitcher:false,units:'ft'});map.addLayer(lyrQuery);map.addLayer(lyrMapservFore);var args=getargs();if(args.mapext){var coords=args.mapext.split(" ");if(coords.length!=4){alert("Not enough coordinates for mapext. Using default extent.");}else{rwg.initialExtent=(new OpenLayers.Bounds(parseFloat(coords[0]),parseFloat(coords[1]),parseFloat(coords[2]),parseFloat(coords[3])));}}
if(args.filter&&args.qlayer){rwg.itemQuery(args.filter,args.qlayer);}
if(!map.getCenter()){map.zoomToExtent(rwg.initialExtent);}
map.addControl(new OpenLayers.Control.Permalink('permalink'));map.addControl(new OpenLayers.Control.Scale('scale'));map.addControl(new OpenLayers.Control.ScaleLine({maxWidth:150,topOutUnits:"mi",topInUnits:"ft",bottomOutUnits:"km",bottomInUnits:"m",eTop:null,eBottom:null}));map.events.register("mousemove",map,rwg.cursorCoords);map.addControl(new OpenLayers.Control.Navigation({'dragPan':false,'zoomBox':false,'zoomWheelEnabled':true}));rwg.Measure.Initialize();map.addControl(rwg.Measure.measureLineControl);map.addControl(rwg.Measure.measureAreaControl);var navHistControl=new OpenLayers.Control.NavigationHistory({"previousOptions":{"title":"Back to previous view"},"nextOptions":{"title":"Forward to next view"}});map.addControl(navHistControl);var zb=new OpenLayers.Control.ZoomBox({title:"Zoom In by clicking or dragging a rectangle over your area of interest"});var zbo=new OpenLayers.Control.ZoomBox({title:"Zoom Out by clicking or dragging a rectangle",out:true,displayClass:"olControlZoomBoxOut"});var panControl=new OpenLayers.Control.DragPan({title:"Pan by dragging map"});var infoControl=new OpenLayers.Control.InfoTool({title:"Get info by clicking or dragging"});var panel=new OpenLayers.Control.Panel({'div':OpenLayers.Util.getElement('panel'),defaultControl:zb});panel.addControls([zb,zbo,rwg.setZoomControl,panControl,navHistControl.previous,navHistControl.next,infoControl,rwg.unSelectButton,rwg.bufferControl,rwg.Measure.measureLineControl,rwg.Measure.measureAreaControl]);map.addControl(panel);if(rwg.filter!=""){rwg.unSelectButton.setActive()}
panel.activateControl(panControl);panel.activateControl(zb);legend.initialize('legend',legend_config,rwg.legendHandler,false)
if(args.mslayers){legend.uncheckAll()
rwg.addLayers(args.mslayers)}
if(args.addlayers){rwg.addLayers(args.addlayers)}
if((args.view=='pd'||args.view=='cc')&&args.pidn){legend.uncheckAll()
var viewLayers="Roads ownership st_num aerial"
rwg.addLayers(viewLayers)
rwg.itemQuery("pidn='"+args.pidn+"'","ownershipq");}
if(args.apn){legend.uncheckAll()
var viewLayers="Roads ownership st_num aerial"
rwg.addLayers(viewLayers)
var pidn;if(args.apn.substr(0,2)=="22"){pidn=args.apn.substr(0,2)+"-";pidn+=args.apn.substr(2,2)+"-";pidn+=args.apn.substr(4,2)+"-";pidn+=args.apn.substr(6,2)+"-";pidn+=args.apn.substr(8,1)+"-";pidn+=args.apn.substr(9,2)+"-";pidn+=args.apn.substr(11);}else{pidn=args.apn;}
rwg.itemQuery("pidn='"+pidn+"'","ownershipq");}
OpenLayers.Util.getElement("coords_label").innerHTML=csSP.title;OpenLayers.Util.getElement("coordsUTM_label").innerHTML=csUTM.title;}};String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"");}
String.prototype.ltrim=function(){return this.replace(/^\s+/,"");}
String.prototype.rtrim=function(){return this.replace(/\s+$/,"");}
function get_content(url){var content;if(document.all){var xml=new ActiveXObject("Microsoft.XMLHTTP");xml.Open("GET",url,false);xml.Send()
content=xml.responseText;}else{var xml=new XMLHttpRequest();xml.open("GET",url,false);xml.send(null);content=xml.responseText;}
return(content);}
function getargs(){var args=new Object();var query=location.search.substring(1);var pairs=query.split("&");for(var i=0;i<pairs.length;i++){var pos=pairs[i].indexOf('=');if(pos==-1)continue;var argname=pairs[i].substring(0,pos);var value=pairs[i].substring(pos+1);args[argname]=unescape(value.replace(/\+/g," "));}
return args;}
rwg.itemQuery=function(filter,qlayer){var response=get_content("getBox.php?filter="+filter+"&qlayer="+qlayer);var tokens=response.split(',');if(isNaN(Number(tokens[0]))){alert("no results"+response);}else{rwg.filter=filter;rwg.qlayer=qlayer;lyrQuery.url=rwg.ms_map_url+"&filter="+filter;lyrQuery.mergeNewParams({layers:qlayer});lyrQuery.setVisibility(true);map.events.triggerEvent("moveend");var selectionExtent=new OpenLayers.Bounds(parseFloat(tokens[0]),parseFloat(tokens[1]),parseFloat(tokens[2]),parseFloat(tokens[3]));map.zoomToExtent(selectionExtent);if(rwg.unSelectButton!=null){rwg.unSelectButton.setActive();}}}
rwg.printMap=function(){var e=document.getElementById('jqDialog');if(e){$('#jqDialog').dialog({modal:true,title:'Print Setup'});var html='<p>A new browser window will be opened with a map layout suitable for printing on an 8&frac12;&quot;&nbsp;x&nbsp;11&quot;, landscape oriented page. You may enter a title for the map below.</p>';html+='<form action="javascript:rwg.printCallback()">\
                 <textarea rows="3" cols="25" id="pagetitle"></textarea>\
                 <hr><input type="submit" align="center" value="Ok">\
               </form>';e.innerHTML=html;}
$('#jqDialog').dialog('open');}
rwg.printCallback=function(){var pagetitle=document.getElementById('pagetitle').value;$('#jqDialog').dialog("destroy");var extent=map.getExtent();extent=[extent.left,extent.bottom,extent.right,extent.top].join('+');var width=1400;var height=1400;var imagetype='gif';var activelayers=[];for(var layer in rwg.mapservLayerList){if(rwg.mapservLayerList[layer]){activelayers[activelayers.length]=layer;if(layer in rwg.jpegLayers){imagetype="jpeg";}}}
if(rwg.qlayer!=""){activelayers[activelayers.length]=rwg.qlayer;}
activelayers=activelayers.join('+');var url=rwg.ms_map_url;url+='&mode=browse';url+='&mapext='+extent;url+='&mapsize='+width+'+'+height;url+='&layers='+activelayers;url+='&map.imagetype='+imagetype;url+=(map.getScale()<10000)?'&map.scalebar=units+feet':'';url+='&map.defresolution=96&map.resolution=144';url+=rwg.filter!=""?"&filter="+rwg.filter:"";if(pagetitle!=""){pagetitle=pagetitle.replace(/\n/g,'<br>');url+="&pagetitle="+pagetitle;}
window.open(url);};rwg.itemQuery=function(filter,qlayer){var response=get_content("getBox.php?filter="+filter+"&qlayer="+qlayer);var tokens=response.split(',');if(isNaN(Number(tokens[0]))){alert("no results"+response);}else{rwg.filter=filter;rwg.qlayer=qlayer;lyrQuery.url=rwg.ms_map_url+"&filter="+filter;lyrQuery.mergeNewParams({layers:qlayer});lyrQuery.setVisibility(true);map.events.triggerEvent("moveend");var selectionExtent=new OpenLayers.Bounds(parseFloat(tokens[0]),parseFloat(tokens[1]),parseFloat(tokens[2]),parseFloat(tokens[3]));map.zoomToExtent(selectionExtent);if(rwg.unSelectButton!=null){rwg.unSelectButton.setActive();}}}
rwg.longLatInitialize=function(){rwg.setZoomControl=new OpenLayers.Control.Button({displayClass:'olControlSetLongLat',title:'Enter a longitude/latitude to move map to.',trigger:rwg.getLongLatFromUser});}
rwg.getLongLatFromUser=function(){var e=document.getElementById('jqDialog');if(e){$('#jqDialog').dialog({title:'Longitude Latitude'});e.innerHTML='\
        <form action="javascript:rwg.lonLatCallback()">\
          <table>\
            <tr>\
              <td>Longitude: <input size="20" type="text" id="longitude" name="longitude"></td>\
              <td>Latitude: <input size="20" type="text" id="latitude" name="latitude"></td>\
            </tr>\
            <tr>\
              <td colspan="2" align="center"><input type="submit" name="submit" value="submit"></td>\
            </tr>\
          </table>\
        </form>';}
$('#jqDialog').dialog('open');}
rwg.lonLatCallback=function(){function parseDMS(val){val=val.trim();var valDMS=val.split(' ');valDMS[0]=Math.abs(valDMS[0]);if(valDMS.length>1){if(valDMS.length==3){valDMS[2]=(valDMS[2]>60)?'x':valDMS[2]/60;valDMS[1]=(valDMS[1]*1)+valDMS[2];}
valDMS[1]=(valDMS[1]>60)?'x':valDMS[1]/60;valDMS[0]+=valDMS[1];}
return valDMS[0]}
var lon=parseDMS(document.getElementById('longitude').value);if(isNaN(lon)){alert('longitude is invalid');return}
var lat=parseDMS(document.getElementById('latitude').value);if(isNaN(lat)){alert('latitude is invalid');return}
var p=new CSCS.PT(lon*(-1),lat);CSCS.transform(csLL,csSP,p);if(isNaN(p.x*1)||p.x<rwg.fullExtent.left||p.x>rwg.fullExtent.right){alert('longitude '+lon+' out of range ');return}
if(isNaN(p.y*1)||p.y<rwg.fullExtent.bottom||p.y>rwg.fullExtent.top){alert('latitude '+lat+' out of range');return}
$('#jqDialog').dialog("destroy");map.setCenter(new OpenLayers.LonLat(p.x,p.y),8);}
rwg.Measure={distTotal:0,distLeg:0,bearing:'',distance:0,sketchSymbolizers:{"Point":{pointRadius:4,graphicName:"square",fillColor:"white",fillOpacity:1,strokeWidth:1,strokeOpacity:1,strokeColor:"#333333"},"Line":{strokeWidth:3,strokeOpacity:1,strokeColor:"#EFA114"},"Polygon":{strokeWidth:2,strokeOpacity:1,strokeColor:"#EFA114",fillColor:"#EFA114",fillOpacity:0.4}},Initialize:function(){var styleRule=new OpenLayers.Rule({symbolizer:rwg.Measure.sketchSymbolizers});var style=new OpenLayers.Style({},{rules:styleRule});var styleMap=new OpenLayers.StyleMap({"default":style});rwg.Measure.measureLineControl=new OpenLayers.Control.Measure(OpenLayers.Handler.Path,{callbacks:{create:function(point,feature){rwg.Measure.LineHandler('create',point,feature);},modify:function(point,feature){rwg.Measure.LineHandler('move',point,feature);},point:function(point){rwg.Measure.LineHandler('click',point);}},displayClass:"olControlMeasurePath",displaySystem:"english",handlerOptions:{style:"default",layerOptions:{styleMap:styleMap},persist:true},title:"Measure distances. Click two or more points, double click when done, distance is displayed below"});rwg.Measure.measureAreaControl=new OpenLayers.Control.Measure(OpenLayers.Handler.Polygon,{displayClass:"olControlMeasureArea",displaySystem:"english",handlerOptions:{style:"default",layerOptions:{styleMap:styleMap},persist:true},title:"Measure areas. Click points to draw a polygon, double click when done, area is displayed below"});rwg.Measure.measureAreaControl.events.on({"measure":rwg.Measure.AreaHandler,"measurepartial":rwg.Measure.AreaHandler});},Inverse:function(x1,y1,x2,y2){var R2D=57.2957795131;var dx=x2-x1;var dy=y2-y1;rwg.Measure.distance=Math.sqrt(dx*dx+dy*dy);if(rwg.Measure.distance==0){rwg.Measure.bearing='';return}
angle=Math.round(Math.atan(dy/dx)*R2D);if(dx>0&&dy>0)
rwg.Measure.bearing="N"+(90-angle)+"E ";else if(dx<0&&dy>0)
rwg.Measure.bearing="N"+(90+angle)+"W ";else if(dx<0&&dy<0)
rwg.Measure.bearing="S"+(90-angle)+"W ";else
rwg.Measure.bearing="S"+(90+angle)+"E ";},FormatDist:function(dist){if(dist<1)
return''
if(dist<5280)
return Math.round(dist)+" feet ";var d=dist/5280;return d.toFixed(1)+" miles ";},LineHandler:function(event,point,feature){var element=document.getElementById('meas');if(event=='create'){this.distTotal=0;}else if(event=='move'){var geometry=feature.geometry;var nodeCount=geometry.components.length;if(nodeCount>1){this.Inverse(geometry.components[nodeCount-2].x,geometry.components[nodeCount-2].y,geometry.components[nodeCount-1].x,geometry.components[nodeCount-1].y);this.distLeg=this.distance;}}else if(event=='click'){this.distTotal+=this.distLeg;}
var out="Total: "+this.FormatDist(this.distTotal)+this.bearing+this.FormatDist(this.distance);element.innerHTML=out;},AreaHandler:function(event){var element=document.getElementById('meas');var units=event.units;var measure=event.measure;if(units=='in'){measure/=144;units='ft';}
out="Area: ";if(units=='ft'){var acres=measure/43560;out+=acres.toFixed(2)+" acres";}else if(units=='mi'){out+=measure.toFixed(1)+" sq miles";}
element.innerHTML=out;}}
OpenLayers.Control.InfoTool=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,draw:function(){this.handler=new OpenLayers.Handler.Box(this,{done:this.infoBox},{keyMask:this.keyMask});},infoBox:function(position){var bbox=lyrMapservFore.map.getExtent().toBBOX();var qlayers="";var url=rwg.ms_query_url+"&mode=nquery";url+="&imgext="+bbox.replace(/,/g,"+");url+="&map_size="+lyrMapservFore.map.size.w+"+"+lyrMapservFore.map.size.h;for(var layer in rwg.mapservLayerList){if(rwg.mapservLayerList[layer]){if(layer in rwg.infoLayers){if(qlayers!=""){qlayers+="+";}
qlayers+=layer;}}}
if(qlayers!=""){url+="&layers="+qlayers;if(position instanceof OpenLayers.Bounds){url+="&imgbox="+position.left+"+"+position.top+"+"+position.right+"+"+position.bottom;}else{var pointXY=this.map.getLonLatFromPixel(position)
url+="&imgxy="+position.x+"+"+position.y;}
infoWin=window.open(url,"info","width=375,height=400,resizable=yes,scrollbars=yes");infoWin.focus();}else{alert("There are no info layers turned on.");}},CLASS_NAME:"OpenLayers.Control.InfoTool"});OpenLayers.Control.UnSelect=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOGGLE,unselect:null,unselectOptions:null,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,[options]);var unselectOptions={trigger:OpenLayers.Function.bind(this.unselectTrigger,this),displayClass:this.displayClass+"unselect"};this.unselect=new OpenLayers.Control.Button(unselectOptions);},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);this.unselect.draw();this.activate();},setActive:function(){if(this.map){if(OpenLayers.Control.prototype.activate.apply(this)){}}},activate:function(){},clickHandler:function(){},deactivate:function(){if(this.map){if(OpenLayers.Control.prototype.deactivate.apply(this)){this.clickHandler();}}},CLASS_NAME:"OpenLayers.Control.UnSelect"});rwg.unSelectButton=new OpenLayers.Control.UnSelect({title:'un-select hilighted features.'});rwg.unSelectButton.clickHandler=function(){rwg.filter="",rwg.qlayer="",lyrQuery.url="";lyrQuery.setVisibility(false);};var CSCS={list:{EPSG4326:"+title=long / lat WGS84 +proj=longlat",EPSG4269:"+title=long / lat NAD83 +proj=longlat"},PT:function(x,y){this.x=x;this.y=y;this.z=0.0;},CS:function(def){if(!def){def=CSCS.list.EPSG4326;CSCS.ErrorMessage+="No coordinate system definition provided, assuming longlat WGS83";}
var paramName,paramVal;var paramArray=def.split("+");for(var prop=0;prop<paramArray.length;prop++){property=paramArray[prop].split("=");paramName=property[0].toLowerCase();paramVal=property[1];switch(paramName.replace(/\s/gi,"")){case"":break;case"title":this.title=paramVal;break;case"proj":this.proj=paramVal.replace(/\s/gi,"");break;case"a":this.a=parseFloat(paramVal);break;case"b":this.b=parseFloat(paramVal);break;case"lon_0":this.long0=paramVal*CSCS.D2R;break;case"lat_0":this.lat0=paramVal*CSCS.D2R;break;case"lat_ts":this.phits=paramVal*CSCS.D2R;break;case"x_0":this.x0=parseFloat(paramVal);break;case"y_0":this.y0=parseFloat(paramVal);break;case"k":this.k0=parseFloat(paramVal);break;case"to_meter":this.to_meter=parseFloat(paramVal);break;case"zone":this.zone=parseInt(paramVal);break;case"towgs84":this.datum_params=paramVal.split(",");break;case"from_greenwich":this.from_greenwich=paramVal*D2R;break;default:CSCS.ErrorMessage+="\nUnrecognized parameter: "+paramName;}}
if(this.datum_params){for(var i=0;i<this.datum_params.length;i++)
this.datum_params[i]=parseFloat(this.datum_params[i]);if(this.datum_params[0]!=0||this.datum_params[1]!=0||this.datum_params[2]!=0)
this.datum_type=CSCS.D_3PARAM;if(this.datum_params.length>3){if(this.datum_params[3]!=0||this.datum_params[4]!=0||this.datum_params[5]!=0||this.datum_params[6]!=0){this.datum_type=CSCS.D_7PARAM;this.datum_params[3]*=CSCS.SEC_TO_RAD;this.datum_params[4]*=CSCS.SEC_TO_RAD;this.datum_params[5]*=CSCS.SEC_TO_RAD;this.datum_params[6]=(this.datum_params[6]/1000000.0)+1.0;}}}
if(!this.datum_type)
this.datum_type=CSCS.D_WGS84;if(!this.a){this.a=6378137.0;this.b=6356752.31424518;CSCS.ErrorMessage+="\nEllipsoid parameters not provided, assuming WGS84";}
this.a2=this.a*this.a;this.b2=this.b*this.b;this.es=(this.a2-this.b2)/this.a2;this.e=Math.sqrt(this.es);this.ep2=(this.a2-this.b2)/this.b2;if(this.proj!="longlat"){this.Forward=CSCS[this.proj].fwd;this.Inverse=CSCS[this.proj].inv;this.Init=CSCS[this.proj].init;this.Init(this);}},transform:function(srcdefn,dstdefn,point){var pj_errno=0;if(srcdefn.proj=="longlat"){point.x*=CSCS.D2R;point.y*=CSCS.D2R;}else{if(srcdefn.to_meter){point.x*=srcdefn.to_meter;point.y*=srcdefn.to_meter;}
srcdefn.Inverse(point);}
if(srcdefn.from_greenwich){point.x+=srcdefn.from_greenwich;}
if(!CSCS.datumsEqual(srcdefn,dstdefn)){if(typeof(CSCS.datumTransform)==='function'){if(!CSCS.datumTransform(srcdefn,dstdefn,point)){alert('dataum transfor failed'+CSC.ErrorMessage);}}else{alert('Warning: A datum transformation is required\nbut datum transformation code is not loaded.\nNo datum transformation will be applied.');}}
if(dstdefn.from_greenwich){point.x-=dstdefn.from_greenwich;}
if(dstdefn.proj=="longlat"){point.x*=CSCS.R2D;point.y*=CSCS.R2D;}else{dstdefn.Forward(point);if(dstdefn.to_meter){point.x/=dstdefn.to_meter;point.y/=dstdefn.to_meter;}}},datumsEqual:function(srcdefn,dstdefn){if(srcdefn.datum_type!=dstdefn.datum_type){return 0;}
else if(srcdefn.datum_type==CSCS.D_3PARAM){return(srcdefn.datum_params[0]==dstdefn.datum_params[0]&&srcdefn.datum_params[1]==dstdefn.datum_params[1]&&srcdefn.datum_params[2]==dstdefn.datum_params[2]);}else if(srcdefn.datum_type==CSCS.D_7PARAM){return(srcdefn.datum_params[0]==dstdefn.datum_params[0]&&srcdefn.datum_params[1]==dstdefn.datum_params[1]&&srcdefn.datum_params[2]==dstdefn.datum_params[2]&&srcdefn.datum_params[3]==dstdefn.datum_params[3]&&srcdefn.datum_params[4]==dstdefn.datum_params[4]&&srcdefn.datum_params[5]==dstdefn.datum_params[5]&&srcdefn.datum_params[6]==dstdefn.datum_params[6]);}else if(srcdefn.datum_type==CSCS.D_GRIDSHIFT){return strcmp(pj_param(srcdefn.params,"snadgrids").s,pj_param(dstdefn.params,"snadgrids").s)==0;}else{return 1;}},PI:Math.PI,HALF_PI:Math.PI*0.5,TWO_PI:Math.PI*2,R2D:57.2957795131,D2R:0.0174532925199,D_UNKNOWN:0,D_3PARAM:1,D_7PARAM:2,D_GRIDSHIFT:3,D_WGS84:4,ErrorMessage:"Message: ",sign:function(x){return(x<0.0)?-1:1},adjust_lon:function(x){return(Math.abs(x)<CSCS.PI)?x:(x-(CSCS.sign(x)*CSCS.TWO_PI));}};CSCS.tmerc={mlfn:function(e0,e1,e2,e3,phi){return(e0*phi-e1*Math.sin(2.0*phi)+e2*Math.sin(4.0*phi)-e3*Math.sin(6.0*phi));},init:function(def){function e0fn(x){return(1.0-0.25*x*(1.0+x/16.0*(3.0+1.25*x)));}
function e1fn(x){return(0.375*x*(1.0+0.25*x*(1.0+0.46875*x)));}
function e2fn(x){return(0.05859375*x*x*(1.0+0.75*x));}
function e3fn(x){return(x*x*x*(35.0/3072.0));}
def.e0=e0fn(def.es);def.e1=e1fn(def.es);def.e2=e2fn(def.es);def.e3=e3fn(def.es);def.ml0=def.a*CSCS.tmerc.mlfn(def.e0,def.e1,def.e2,def.e3,def.lat0);def.ind=(def.es<.00001)?1:0;},fwd:function(p){var delta_lon=CSCS.adjust_lon(p.x-this.long0);var con;var x,y;var sin_phi=Math.sin(p.y);var cos_phi=Math.cos(p.y);if(this.ind!=0){var b=cos_phi*Math.sin(delta_lon);if((Math.abs(Math.abs(b)-1.0))<.0000000001){alert("Error in ll2tm(): Point projects into infinity");return(93);}else{x=.5*this.a*this.k0*Math.log((1.0+b)/(1.0-b));con=Math.acos(cos_phi*Math.cos(delta_lon)/Math.sqrt(1.0-b*b));if(p.y<0)
con=-con;y=this.a*this.k0*(con-this.lat0);}}else{var al=cos_phi*delta_lon;var als=Math.pow(al,2);var c=this.ep2*Math.pow(cos_phi,2);var tq=Math.tan(p.y);var t=Math.pow(tq,2);con=1.0-this.es*Math.pow(sin_phi,2);var n=this.a/Math.sqrt(con);var ml=this.a*CSCS.tmerc.mlfn(this.e0,this.e1,this.e2,this.e3,p.y);x=this.k0*n*al*(1.0+als/6.0*(1.0-t+c+als/20.0*(5.0-18.0*t+Math.pow(t,2)+72.0*c-58.0*this.ep2)))+this.x0;y=this.k0*(ml-this.ml0+n*tq*(als*(0.5+als/24.0*(5.0-t+9.0*c+4.0*Math.pow(c,2)+als/30.0*(61.0-58.0*t+Math.pow(t,2)+600.0*c-330.0*this.ep2)))))+this.y0;}
p.x=x;p.y=y;},inv:function(p){var EPSLN=1.0e-10;var con,phi;var delta_phi;var i;var max_iter=6;var lat,lon;if(this.ind!=0){var f=exp(p.x/(this.a*this.k0));var g=.5*(f-1/f);var temp=this.lat0+p.y/(this.a*this.k0);var h=cos(temp);con=sqrt((1.0-h*h)/(1.0+g*g));lat=asinz(con);if(temp<0)
lat=-lat;if((g==0)&&(h==0)){lon=this.long0;}else{lon=CSCS.adjust_lon(atan2(g,h)+this.long0);}}else{p.x-=this.x0;p.y-=this.y0;con=(this.ml0+p.y/this.k0)/this.a;phi=con;for(i=0;;i++){delta_phi=((con+this.e1*Math.sin(2.0*phi)-this.e2*Math.sin(4.0*phi)+this.e3*Math.sin(6.0*phi))/this.e0)-phi;phi+=delta_phi;if(Math.abs(delta_phi)<=EPSLN)break;if(i>=max_iter){alert("Error in tm2ll(): Latitude failed to converge");return(95);}}
if(Math.abs(phi)<CSCS.HALF_PI){var sin_phi=Math.sin(phi);var cos_phi=Math.cos(phi);var tan_phi=Math.tan(phi);var c=this.ep2*Math.pow(cos_phi,2);var cs=Math.pow(c,2);var t=Math.pow(tan_phi,2);var ts=Math.pow(t,2);con=1.0-this.es*Math.pow(sin_phi,2);var n=this.a/Math.sqrt(con);var r=n*(1.0-this.es)/con;var d=p.x/(n*this.k0);var ds=Math.pow(d,2);lat=phi-(n*tan_phi*ds/r)*(0.5-ds/24.0*(5.0+3.0*t+10.0*c-4.0*cs-9.0*this.ep2-ds/30.0*(61.0+90.0*t+298.0*c+45.0*ts-252.0*this.ep2-3.0*cs)));lon=CSCS.adjust_lon(this.long0+(d*(1.0-ds/6.0*(1.0+2.0*t+c-ds/20.0*(5.0-2.0*c+28.0*t-3.0*cs+8.0*this.ep2+24.0*ts)))/cos_phi));}else{lat=CSCS.HALF_PI*CSCS.sign(p.y);lon=this.long0;}}
p.x=lon;p.y=lat;}};CSCS.utm={init:function(def){def.lat0=0.0;def.long0=((6*Math.abs(def.zone))-183)*CSCS.D2R;def.x0=500000.0;def.y0=(def.zone<0)?10000000.0:0.0;if(!def.k0)
def.k0=0.9996;CSCS.tmerc.init(def);},fwd:CSCS.tmerc.fwd,inv:CSCS.tmerc.inv};rwg.cursorCoords=function(e){var position=this.events.getMousePosition(e);var pointXY=this.getLonLatFromPixel(position);var p=new CSCS.PT(pointXY.lon,pointXY.lat);var text;var zeroPad2=function(num){num+='';return(num.length<2)?"0"+num:num;};var zeroPad4=function(num){num+='';return(num.length<4)?"0"+num:num;};var dd2dms=function(v){var fv=v%1;var d=v-fv;fv=Math.abs(fv);var m=fv*60;var mf=m%1;var mi=m-mf;var s=Math.round(mf*600)/10;s=s.toFixed(1);return d+"&deg;&nbsp;"+zeroPad2(mi)+"'&nbsp;"+zeroPad4(s)+"&quot;";};text="N: "+Math.round(p.y)+" E: "+Math.round(p.x);OpenLayers.Util.getElement("coords").innerHTML=text;CSCS.transform(csSP,csLL,p);text="<table cellpadding=\"0\" cellspacing=\"0\"><tr><td>"
text+="Long:&nbsp;"+dd2dms(p.x)+"</td><td>&nbsp;Lat:&nbsp;"+dd2dms(p.y);text+="</td></tr><tr><td>Long:&nbsp;"+Math.round(p.x*10000)/10000+"&deg;</td><td>&nbsp;Lat:&nbsp;"+Math.round(p.y*10000)/10000;text+="&deg;</td></tr></table>";OpenLayers.Util.getElement("coordsLL").innerHTML=text;CSCS.transform(csLL,csUTM,p);text="&nbsp;X ="+Math.round(p.x)+" Y = "+Math.round(p.y);OpenLayers.Util.getElement("coordsUTM").innerHTML=text;};OpenLayers.Control.Permalink=OpenLayers.Class(OpenLayers.Control,{element:null,base:'',displayProjection:null,initialize:function(element,base,options){OpenLayers.Control.prototype.initialize.apply(this,[options]);this.element=OpenLayers.Util.getElement(element);this.base=base||document.location.href;},destroy:function(){if(this.element.parentNode==this.div){this.div.removeChild(this.element);}
this.element=null;this.map.events.unregister('moveend',this,this.updateLink);OpenLayers.Control.prototype.destroy.apply(this,arguments);},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);for(var i=0;i<this.map.controls.length;i++){var control=this.map.controls[i];if(control.CLASS_NAME=="OpenLayers.Control.ArgParser"){if(control.displayProjection!=this.displayProjection){this.displayProjection=control.displayProjection;}
break;}}
if(i==this.map.controls.length){this.map.addControl(new OpenLayers.Control.ArgParser({'displayProjection':this.displayProjection}));}},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);if(!this.element){this.element=document.createElement("a");this.element.innerHTML=OpenLayers.i18n("permalink");this.element.href="";this.div.appendChild(this.element);}
this.map.events.on({'moveend':this.updateLink,'changelayer':this.updateLink,'changebaselayer':this.updateLink,scope:this});return this.div;},updateLink:function(){var center=this.map.getCenter();if(!center){return;}
var params=OpenLayers.Util.getParameters(this.base);params.zoom=this.map.getZoom();var lat=center.lat;var lon=center.lon;if(this.displayProjection){var mapPosition=OpenLayers.Projection.transform({x:lon,y:lat},this.map.getProjectionObject(),this.displayProjection);lon=mapPosition.x;lat=mapPosition.y;}
params.lat=Math.round(lat*100000)/100000;params.lon=Math.round(lon*100000)/100000;params.layers='';for(var i=0;i<this.map.layers.length;i++){var layer=this.map.layers[i];if(layer.isBaseLayer){params.layers+=(layer==this.map.baseLayer)?"B":"0";}else{params.layers+=(layer.getVisibility())?"T":"F";}}
params.mslayers='';for(var mslayer in rwg.mapservLayerList){if(rwg.mapservLayerList[mslayer]){if(params.mslayers!='')
params.mslayers+=' ';params.mslayers+=mslayer}}
if(rwg.filter!=""){params.filter=rwg.filter;params.table=rwg.table;params.qlayer=rwg.qlayer;}else{if(params.filter)delete params.filter;if(params.table)delete params.table;if(params.qlayer)delete params.qlayer;}
var href=this.base;if(href.indexOf('?')!=-1){href=href.substring(0,href.indexOf('?'));}
href+='?'+OpenLayers.Util.getParameterString(params);this.element.href=href;},CLASS_NAME:"OpenLayers.Control.Permalink"});OpenLayers.Control.Buffer=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOGGLE,buffer:null,bufferOptions:null,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,[options]);var bufferOptions={trigger:OpenLayers.Function.bind(this.bufferTrigger,this),displayClass:this.displayClass+"bufffer"};this.buffer=new OpenLayers.Control.Button(bufferOptions);},draw:function(){},setActive:function(){if(this.map){if(OpenLayers.Control.prototype.activate.apply(this)){}}},activate:function(){rwg.buffer();},clickHandler:function(){},deactivate:function(){if(this.map){if(OpenLayers.Control.prototype.deactivate.apply(this)){this.clickHandler();}}},CLASS_NAME:"OpenLayers.Control.Buffer"});rwg.bufferControl=new OpenLayers.Control.Buffer({title:'Buffer'});rwg.buffer=function(){if(rwg.filter==''){alert("No parcel is selected.\nA parcel must be selected before it can be buffered.\nTo select a parcel, Use 'Map It' from either the\nInfo Tool or a query Result List.");return}
var e=document.getElementById('jqDialog');if(e){$('#jqDialog').dialog({modal:true,title:'Buffer'});e.innerHTML='\
    <form action="javascript:rwg.bufferCallback()">\
      Buffer Distance: <input type="text" id="rad" value="140" size="5" />\
      <hr><input type="submit" style="float: right" value="Ok">\
    </form>';$('#jqDialog').dialog('open');}}
rwg.bufferCallback=function(){var buffer=document.getElementById('rad').value;$('#jqDialog').dialog("destroy");if(!(buffer>0&&buffer<52800)){alert('Invalid buffer distance, must be between 1 and 50,000 feet');return}
lyrQuery.url+='&buffer='+buffer;lyrQuery.mergeNewParams({layers:lyrQuery.params.layers+' nbuffer'});var url='listBuffer.php?filter='+rwg.filter+'&buffer='+buffer;infoWin=window.open(url,"info","width=375,height=400,resizable=yes,scrollbars=yes");infoWin.focus();}