function onLoadHndlr(fn){if(typeof window.addEventListener!='undefined'){window.addEventListener('load',fn,false);}else if(typeof document.addEventListener!='undefined'){document.addEventListener('load',fn,false);}else if(typeof window.attachEvent!='undefined'){window.attachEvent('onload',fn);}else{var lgcyFn=window.onload;if(typeof lgcyFn!='function'){window.onload=fn;}else{window.onload=function(){lgcyFn();fn();};}}}function addLstnr(el,ev,fn,capture,useThis){if(typeof el.addEventListener!='undefined'){el.addEventListener(ev,fn,capture);}else if(typeof el.attachEvent!='undefined'){if(useThis){var IEBugFix=function(){fn.call(el);};el.attachEvent('on'+ev,IEBugFix);}else{el.attachEvent('on'+ev,fn);}}else{ev='on'+ev;if(typeof el[ev]=='function'){var lgcyFn=el[ev];el[ev]=function(){lgcyFn();return fn();};}else{el[ev]=fn;}}}function rmvLstnr(el,ev,fn,capture){if(typeof el.removeEventListener!='undefined'){el.removeEventListener(ev,fn,capture);}else if(typeof el.detachEvent!='undefined'){el.detachEvent('on'+ev,fn);}else{el['on'+ev]=null;}}function getElsByAttr(nm,vl){var el;var inArr=new Array();var outArr=new Array();if(document.all){inArr=document.all;}else{inArr=document.getElementsByTagName('*');}for(var i=0;i<inArr.length;i++){el=inArr[i];if(nm=='class'){if(el.className==vl){outArr.push(el);}}else if(nm=='for'){if(el.getAttribute('for')||el.getAttribute('htmlFor')){if(el.htmlFor==vl){outArr.push(el);}}}else if(el.getAttribute(nm)==vl){outArr.push(el);}}return outArr;}function getTrgt(ev){var trgt=null;if(typeof ev.target!='undefined'){trgt=ev.target;}else{trgt=ev.srcElement;}while(trgt.parentNode!=null&&trgt.nodeType==3){trgt=trgt.parentNode;}return trgt;}function getPstn(el){var left=0;var top=0;while(el!=null){left+=el.offsetLeft;top+=el.offsetTop;el=el.offsetParent;}return[left,top];}function getScrPstn(){var pstn=[0,0];if(typeof window.pageXOffset!='undefined'&&typeof window.pageYOffset!='undefined'){pstn=[window.pageXOffset,window.pageYOffset];}else if(typeof document.documentElement.scrollLeft!='undefined'&&document.documentElement.scrollLeft>0&&typeof document.documentElement.scrollTop!='undefined'&&document.documentElement.scrollTop>0){pstn=[document.documentElement.scrollLeft,document.documentElement.scrollTop];}else if(typeof document.body.scrollLeft!='undefined'&&typeof document.body.scrollTop!='undefined'){pstn=[document.body.scrollLeft-document.body.clientLeft,document.body.scrollTop-document.body.clientTop];}return pstn;}function rmvChldNds(prntNd){while(prntNd.childNodes[0]){prntNd.removeChild(prntNd.childNodes[0]);}}function prvntDfltBhvr(ev){ev.returnValue=false;if(typeof ev.preventDefault!='undefined'){ev.preventDefault();}}function cnclBbblng(ev){if(typeof ev=='undefined'){ev=window.event;}ev.cancelBubble=true;}function stpPrpgtn(ev){if(typeof ev=='undefined'){ev=window.event;}if(ev.stopPropagation){ev.stopPropagation();}}function smEv(el,ev){if(document.createEventObject){var evObj=document.createEventObject();return el.fireEvent('on'+ev,evObj)}else{var evObj=document.createEvent("HTMLEvents");evObj.initEvent(ev,true,true);return!el.dispatchEvent(evObj);}}function msOverBugFix(el,ev){if(el.contains&&ev.fromElement){return!el.contains(ev.fromElement);}else if(ev.relatedTarget){return!elCntns(el,ev.relatedTarget);}}function msOutBugFix(el,ev){if(el.contains&&ev.toElement){return!el.contains(ev.toElement);}else if(ev.relatedTarget){return!elCntns(el,ev.relatedTarget);}}function elCntns(el,trgt){do{if(el==trgt){return true;}else{trgt=trgt.parentNode;}}while(trgt!=null);}function getXmlHttpRqst(){if(navigator.appName=='Microsoft Internet Explorer'){return new ActiveXObject('Microsoft.XMLHTTP');}else{return new XMLHttpRequest();}}onLoadHndlr(addWlcmLstnrs);function addWlcmLstnrs(){addLstnr(document.getElementById('cls-wlcm-cntnr-a'),'click',clsWlcmCntnr,false,true);}function clsWlcmCntnr(){var wlcmCntnr=document.getElementById('wlcm-cntnr');wlcmCntnr.parentNode.removeChild(wlcmCntnr);}var numYrs=6;var statYr=1999;var dynYr=1999;var defYr=2004;var lbls=['1999','2000','2001','2002','2003','2004'];var incr=50;var pixOff=-4;onLoadHndlr(loadSlider);function loadSlider(){var sl=document.getElementById('slider');var slIn=document.getElementById('slider-input');slIn.value=defYr-statYr;var slBg=document.createElement('div');slBg.setAttribute('id','slider-bg');slBg.className='slider-bg';var width=numYrs*incr;slBg.style.width=width+'px';slBg.input=slIn;sl.style.width=width+incr+'px';var slFg=document.createElement('div');slFg.setAttribute('id','slider-fg');slFg.className='slider-fg';var val=slIn.value*incr;slFg.value=val;slFg.style.left=val+pixOff+'px';slBg.appendChild(slFg);sl.insertBefore(slBg,slIn);addLstnr(slFg,'mousedown',slMsDnHndlr,false);var decSlBn=document.createElement('div');decSlBn.setAttribute('id','dec-slider-button');decSlBn.className='slider-button';decSlBn.setAttribute('title','Click to decrement the year');decSlBn.trgt=slFg;sl.insertBefore(decSlBn,slBg);addLstnr(document.getElementById('dec-slider-button'),'click',decSl,false,true);var incSlBn=document.createElement('div');incSlBn.setAttribute('id','inc-slider-button');incSlBn.className='slider-button';incSlBn.setAttribute('title','Click to increment the year');incSlBn.trgt=slFg;sl.insertBefore(incSlBn,slBg.nextSibling);addLstnr(document.getElementById('inc-slider-button'),'click',incSl,false,true);var slLbls=document.getElementById('slider-lbls');for(var i=0;i<lbls.length;i++){var slLbl=document.createElement('div');slLbl.setAttribute('id','slider-lbl-'+i);slLbl.className='slider-lbl';slLbl.innerHTML=lbls[i];slLbls.appendChild(slLbl);}evalMsMv((defYr-statYr)*incr);}function slMsDnHndlr(ev){if(typeof evt=='undefined'){ev=window.event;}prvntDfltBhvr(ev);var trgt=getTrgt(ev);while(!trgt.className.match('slider-fg')){trgt=trgt.parentNode;}document.trgt=trgt;trgt.clientX=event.clientX;addLstnr(document,'mousemove',slMsMvHndlr,false);addLstnr(document,'mouseup',slMsUpHndlr,false);}function slMsMvHndlr(ev){if(typeof ev=='undefined'){ev=window.event;}prvntDfltBhvr(ev);var trgt=document.trgt;var val=trgt.value;val+=ev.clientX-trgt.clientX;var minVal=0;var maxVal=trgt.parentNode.offsetWidth-trgt.offsetWidth;if(val<minVal){val=minVal;}else if(val>(maxVal-incr)){val=maxVal-incr;}else{trgt.clientX=ev.clientX;}trgt.value=val;trgt.style.left=val+'px';trgt.parentNode.input.value=val;}function slMsUpHndlr(ev){if(typeof ev=='undefined'){ev=window.event;}prvntDfltBhvr(ev);var trgt=document.trgt;var val=trgt.value;val=parseInt(val);val=Math.round(val/incr)*incr;trgt.value=val;trgt.style.left=val+pixOff+'px';trgt.parentNode.input.value=val;rmvLstnr(document,'mousemove',slMsMvHndlr,false);rmvLstnr(document,'mouseup',slMsUpHndlr,false);evalMsMv(val);}function incSl(){var trgt=this.trgt;var val=trgt.value;val=parseInt(val);var maxVal=trgt.parentNode.offsetWidth-trgt.offsetWidth;if(val<maxVal-incr){val+=incr;trgt.value=val;trgt.style.left=val+pixOff+'px';trgt.parentNode.input.value=val;evalMsMv(val);}}function decSl(){var trgt=this.trgt;var val=trgt.value;val=parseInt(val);if(val>0){val-=incr;trgt.value=val;trgt.style.left=val+pixOff+'px';trgt.parentNode.input.value=val;evalMsMv(val);}}function evalMsMv(val){var yrInput=document.getElementById('year-input');yrInput.value=statYr+(val/incr);if(dynYr!=yrInput.value){dynYr=yrInput.value;}var sliderLbls=getElsByAttr('class','slider-lbl');for(var i=0;i<sliderLbls.length;i++){sliderLbls[i].style.color='#DDDDDD';}sliderLbls[val/incr].style.color='#393939';getPly();}var pntMap=null;var plyMap=null;var initLat=52.935;var initLng=-1.892;var initZoom=6;onLoadHndlr(loadGMap2);function loadGMap2(){if(!GBrowserIsCompatible()){return;}plyMap=new GMap2(document.getElementById('ply-map'));plyMap.setCenter(new GLatLng(initLat,initLng),initZoom);plyMap.addControl(new GSmallMapControl());plyMap.addControl(new GMenuMapTypeControl());pntMap=new GMap2(document.getElementById('pnt-map'));pntMap.setCenter(new GLatLng(initLat,initLng),initZoom);pntMap.addControl(new GLargeMapControl());pntMap.addControl(new GMenuMapTypeControl());pntMap.addControl(new GScaleControl());GEvent.addListener(pntMap,'moveend',pntMapMoveEndHndlr);pntMapMoveEndHndlr();GEvent.addListener(pntMap,'click',pntMapClckHndlr);}function pntMapMoveEndHndlr(){pntMap.clearOverlays();var bounds=pntMap.getBounds();var northEast=bounds.getNorthEast();var southWest=bounds.getSouthWest();var north=northEast.lat();var east=northEast.lng();var south=southWest.lat();var west=southWest.lng();var zoom=pntMap.getZoom();getPnts(north,south,east,west,zoom);}var redIcon=new GIcon(G_DEFAULT_ICON);redIcon.image='img/icon-red.png';redIcon.iconSize=new GSize(24,34);redIcon.iconAnchor=new GPoint(24,34);redIcon.shadow='img/shadow-red.png';redIcon.shadowSize=new GSize(48,34);var blueIcon=new GIcon(G_DEFAULT_ICON);blueIcon.image='img/icon-blue.png';blueIcon.iconSize=new GSize(24,34);blueIcon.iconAnchor=new GPoint(0,34);blueIcon.shadow='img/shadow-blue.png';blueIcon.shadowSize=new GSize(28,34);var icon=null;function getPnts(north,south,east,west,zoom){var rqst=GXmlHttp.create();rqst.open('GET','./lib/php/getPnts.php?north='+north+'&south='+south+'&east='+east+'&west='+west+'&zoom='+zoom,true);rqst.onreadystatechange=function(){if(rqst.readyState==4){var rspnsXML=rqst.responseXML;var pnts=rspnsXML.documentElement.getElementsByTagName('point');for(var i=0;i<pnts.length;i++){if(pnts[i].getAttribute('type')=='TC'){icon=redIcon;}else{icon=blueIcon;}mrkr=new GMarker(new GLatLng(parseFloat(pnts[i].getAttribute('lat')),parseFloat(pnts[i].getAttribute('lng'))),{title:pnts[i].getAttribute('name'),icon:icon});mrkr.id=pnts[i].getAttribute('id');mrkr.name=pnts[i].getAttribute('name');mrkr.lat=pnts[i].getAttribute('lat');mrkr.lng=pnts[i].getAttribute('lng');pntMap.addOverlay(mrkr);}}};rqst.send(null);}var name='';var lat=initLat;var lng=initLng;function pntMapClckHndlr(overlay,latLng){if(overlay){name=overlay.name;lat=overlay.lat;lng=overlay.lng;getPly();}}var red='#FF0000';var blue='#0000FF';var color=null;function getPly(){if(name==''){return;}plyMap.clearOverlays();var year=document.getElementById('year-input').value;var rqst=GXmlHttp.create();rqst.open('GET','./lib/php/getPly.php?name='+name.replace(',','[comma]')+'&year='+year,true);rqst.onreadystatechange=function(){if(rqst.readyState==4){var crrntlySlctd=document.getElementById('crrntly-slctd');crrntlySlctd.innerHTML='';var sttstcsTbl=document.getElementById('sttstcs-tbl');clrVls(sttstcsTbl);var src=document.getElementById('src');src.innerHTML='';var area=document.getElementById('area');area.innerHTML='';pntMap.setCenter(new GLatLng(lat,lng),13);plyMap.setCenter(new GLatLng(lat,lng),13);var rspnsXML=rqst.responseXML;var plys=rspnsXML.documentElement.getElementsByTagName('polygon');if(plys.length>0){for(var i=0;i<plys.length;i++){var nm='';var vl='';for(var j=0;j<17;j++){nm=plys[i].childNodes[1].childNodes[j].getAttribute('name');vl=plys[i].childNodes[1].childNodes[j].getAttribute('value');if(vl==-1){vl='Disclosive';}if(vl==-2){vl='N/A';}document.getElementById('nm-'+j).innerHTML=nm;document.getElementById('vl-'+j).innerHTML=frmtVl(vl);}if(plys[i].childNodes[0].getAttribute('type')=='TC'){color=red;}else{color=blue;}var extRngs=plys[i].childNodes[2].childNodes[1].childNodes;var extRng=null;var pntArr;var pnts=null;var pnt=null;for(var j=0;j<extRngs.length;j++){pntArr=[];pnts=extRngs[j].childNodes[0].childNodes;for(var k=0;k<pnts.length;k++){pnt=new GLatLng(parseFloat(pnts[k].getAttribute('lat')),parseFloat(pnts[k].getAttribute('lng')));pntArr.push(pnt);}extRng=new GPolyline(pntArr,color,1,1);plyMap.addOverlay(extRng);}var intRngs=plys[i].childNodes[2].childNodes[2].childNodes;var intRng=null;for(var m=0;m<intRngs.length;m++){pntArr=[];pnts=intRngs[m].childNodes[0].childNodes;for(var n=0;n<pnts.length;n++){pnt=new GLatLng(parseFloat(pnts[n].getAttribute('lat')),parseFloat(pnts[n].getAttribute('lng')));pntArr.push(pnt);}intRng=new GPolyline(pntArr,color,1,1);plyMap.addOverlay(intRng);}}crrntlySlctd.innerHTML='Statistics for '+name+', '+year;sttstcsTbl.style.visibility='visible';src.innerHTML='Source: CLG, 2008<br /><a id="hlp-a" href="help.html" target="_blank" title="Click to open the help / about page in a new browser / tab...">help / about</a>';area.innerHTML='Area: '+plys[0].childNodes[2].childNodes[3].getAttribute('val')+' hectares';}else{crrntlySlctd.innerHTML=name+' did not meet CLGs definition of a town centre in '+year;sttstcsTbl.style.visibility='hidden';}}};rqst.send(null);}function clrVls(tbl){var tds=tbl.getElementsByTagName('td');for(var i=0;i<tds.length;i++){tds[i].innerHTML='';}}function frmtVl(vl){if(vl.toString().split('.').length==2){vl=parseFloat(vl).toFixed(2);}var arr=vl.toString().split('.');var regEx=/(\d+)(\d{3})/;while(regEx.test(arr[0])){arr[0]=arr[0].replace(regEx,'$1'+','+'$2');}vl=arr.join('.');return vl;}onLoadHndlr(addSrchLstnrs);function addSrchLstnrs(){addLstnr(document.getElementById('srch-trm'),'click',clrSrchTrm,false,true);addLstnr(document,'keydown',kyDnHndlr,false,true);addLstnr(document.getElementById('sbmt-srch-trm'),'click',getOpts,false,true);addLstnr(document.getElementById('slct-rslt'),'click',getOpt,false,true);}function clrSrchTrm(){if(this.value=='Enter a search term...'){this.value='';}}function kyDnHndlr(ev){if(typeof ev=='undefined'){ev=window.event;}if(typeof(ev.keyCode)=='number'){}else if(typeof(ev.which)=='number'){ev.keyCode=ev.which;}else if(typeof(ev.charCode)=='number'){ev=ev.charCode;}else{return false;}if(ev.keyCode==13){getOpts();}}function getOpts(){var srchTrm=document.getElementById('srch-trm');if(srchTrm.value=='Enter a search term...'||srchTrm.value==''){return;}var srchRslts=document.getElementById('srch-rslts');rmvChldNds(srchRslts);var opts=null;var opt=null;var rqst=GXmlHttp.create();rqst.open('GET','./lib/php/getOpts.php?srchTrm='+srchTrm.value.replace(',','[comma]'),true);rqst.onreadystatechange=function(){if(rqst.readyState==4){var rspnsXML=rqst.responseXML;var opts=rspnsXML.documentElement.getElementsByTagName('option');for(var i=0;i<opts.length;i++){opt=document.createElement('option');opt.setAttribute('id',opts[i].getAttribute('id'));opt.setAttribute('name',opts[i].getAttribute('name'));opt.setAttribute('value',opts[i].getAttribute('value'));opt.innerHTML=opts[i].getAttribute('name');srchRslts.appendChild(opt);}srchTrm.value='Enter a search term...';}};rqst.send(null);}function getOpt(){var srchRslts=document.getElementById('srch-rslts');if(srchRslts.options.length>0){var valStr=srchRslts.options[srchRslts.selectedIndex].value;var valArr=valStr.split(';');name=valArr[0];lat=valArr[1];lng=valArr[2];if(name!=''){pntMap.setCenter(new GLatLng(lat,lng));getPly();}}}