 ////	Copyright 2001 Kingswood MapMechanics//	Creation date:	27th July 2001//	FileName:		originally chk.js//	Written By:		Dannie Bye(Kingswood MapMechanics)//	Customer:		Cook Hammond & Kell////	Purpose:		Centralised JavaScript routines, opens windows, and parses values back and//					forth between the browser//	History//	-------//////=============================================================================================//////                           CHK javascript modifications v1.1////					October 2005//// Latest Mods://// 1. Accepts 5 figure Coordinates.// 2. Key Images for Policy Text.// 3. blankPolicy() called to clear Policies on refresh or tool select. Requires CHK_7.jar// 4. No link supplied on Policy Text when displayName prefixed by a '*'////////////////=============================================================================================function changeTab ( objSelection ){	ChkApplet.setTab (objSelection);}//=============================================================================================//called when user selects an item from the selection boxfunction updatePosition ( objSelection ){	ChkApplet.setSavedPosition ( objSelection.value );}//=============================================================================================//called when user selects an item from the selection boxfunction updatePositionString ( objSelection ){	ChkApplet.setSavedPosition ( objSelection);}//=============================================================================================function updateHashPosition(){	document.ChkApplet.openHashPositionsDialog ();}//=============================================================================================// Opens "geocoder.html" into a floating windowfunction openGazeteer(){	window_handle = window.open("geoCoder.html","","width=660,height=220,directories=no,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no");}//=============================================================================================// Opens ASP and sends delimited value of HTML page namesfunction displayObjectsUnderClick ( strArrayOfObjects ){	var	strURL	="";	arrArrayOfResults	=	strArrayOfObjects.split (";");	strURL	+=	"<TABLE>";	for (intCount=0;intCount < (arrArrayOfResults.length - 1);intCount++)	{		arrTmpArray	=	arrArrayOfResults[intCount].split ("-");												if (arrTmpArray[0].substring(0,1)=="*")	{//	alert((arrTmpArray[0].substring(0,1)))		var imgStrname = arrTmpArray[0].substring(1,arrTmpArray[0].length-1)	strURL	+=	"<TR><TD VALIGN=TOP><UL STYLE='list-style-image: url(./images/"+imgStrname+".gif)'><LI><FONT CLASS=\'popupText\'><A>" + arrTmpArray[0].substring(1,arrTmpArray[0].length-1)  + "</A></FONT></LI></UL></TD></TR>";		}else{	var imgStrname = arrTmpArray[0].substring(0,((arrTmpArray[0].length)-1))	strURL	+=	"<TR><TD VALIGN=TOP><UL STYLE='list-style-image: url(./images/"+imgStrname+".gif)'><LI><FONT CLASS=\'popupText\'><A HREF=\'" + arrTmpArray[1] + "\' TARGET=_Blank>" + arrTmpArray[0] + "</A></FONT></LI></UL></TD></TR>";	}	}		strURL	+=	"</TABLE>";	return overlib(strURL, TIMEOUT, 240000, WIDTH, 200, HEIGHT, 100, FIXX, 550, FIXY, 475, PADX, 10, 10, PADY, 10, 10  )}//=============================================================================================function populateGeocodingOption (){	if ( strSearchString.value == "" )		alert ( "No Entry in text string ");	else	{		strResults = ChkApplet.findMatchingGazName ( strSearchString.value )+"";		var myArray = strResults.split(';');		optSelect.length = 0; // clear the previous selections (make size of combo box 0)		for ( intOptionNumber=0;intOptionNumber < ( myArray.length - 1);intOptionNumber++ )		{			optOption = new Option();									optOption.text = myArray[intOptionNumber].substring(0,myArray[intOptionNumber].indexOf('(')-1);			optOption.value = myArray[intOptionNumber];			optSelect.add ( optOption, 1 );			}	}		if (( myArray.length - 1)==1){gotoPos( myArray[0]);}}//=============================================================================================function gotoPos( strSelectedOption ){if(strSelectedOption=="_____________"||""){return false;}else{//Line below for getPostcodePolicy()//MM_swapImage('reset','','../images/reset.gif','panmap','','../images/panmap.gif','zoomin','','../images/zoomin.gif','zoomout','','../images/zoomout.gif','policies','','../images/policy_.gif',1);MM_showHideLayers('Layer1','','hide');pos = (strSelectedOption.substring(0,(strSelectedOption.lastIndexOf('(')-1)))tab = (strSelectedOption.substring(strSelectedOption.indexOf('(')+1,strSelectedOption.indexOf(')')));ChkApplet.setGazPos ( pos );tabChange (tab);//getPostcodePolicy();// add double slash at begining to switch OFF}}//=============================================================================================function changeScale ( strCurrentScale ){	//scale.value = strCurrentScale;}//=============================================================================================// Mini Map Global Variablesvar giSC = 225000;			// Opening Scalevar mMI = 'valeroyalminimap.gif';	// Minimap graphic filename var gmX = 345280;			// Minimap graphic left eastingvar gmY = 359108;			// Minimap graphic bottom northingvar gmX1 = 381820;			// Minimap graphic right eastingvar gmY1 = 385106;			// Minimap graphic top northingvar mmPX = 536;				// Minimap graphic top-left X (in pixels) on webpage var mmPY = 2;				// Minimap graphic top-left Y (in pixels) on webpagevar mmHt = 90;				// Minimap graphic height of image (in pixels)var mmWd = 119;				// Minimap graphic width of image (in pixels)var tabMax = 2;				// Number of tabsvar tabName = 1;			// Tab that is selected when the page startsvar bxColor = "red"			// Color of miniMap Boxvar i =1;				// arbitary. Unly uses if zooming in using logical scale (keyboard zoom)var currentTab = tabName		//var rset =1;//=============================================================================================// this function called when applet is repainted.function winUpdated(){	miniMap();	miniMap();	miniMap();}//=============================================================================================function miniMap (){	gtInfo = document.ChkApplet.getScale();	gtInfo = gtInfo +"";	var ugmX = parseInt(gtInfo.substr(0,6));	var ugmY = parseInt(gtInfo.substr(9,6));	var usSC = parseInt(gtInfo.substr(gtInfo.lastIndexOf('/')+1).replace (/ /g,''));	if (isNaN(ugmX)==1) {ugmX=((gmX+(gmX1-gmX)/2));ugmY=(gmY+((gmY1-gmY)/2));}	//alert( ugmX+"  "+ugmY+"  "+usSC)	var mBxSz = Math.round(mmWd*(usSC / giSC));	var mapScale = ((mmWd/28.346) / (gmX1 - gmX))	var mmX = ((((((ugmX-gmX) * mapScale)*28.346))+mmPX)-mBxSz/2)	var mmY = (((mmHt-(((ugmY-gmY) * mapScale)*28.346))+mmPY)-mBxSz/2)	var myBox = document.all.mmBox.style;	Box.style.borderWidth ="2"	if (rset==1) {Box.style.borderWidth ="0"}	Box.style.borderColor = bxColor   	var mBxWd = mBxSz	var mBxHt = mBxSz		if (mmY < (mmPY)){	mBxHt = mmY+mBxSz-mmPY	mmY=mmPY	Box.style.borderTopWidth = "0"	}		if (((mmY+mBxHt) > (mmPY+mmHt))){	mBxHt = (mmPY+mmHt)-mmY	Box.style.borderBottomWidth = "0"}		if (((mmX+mBxWd) > (mmPX+mmWd))){	mBxWd =(mmPX+mmWd) - mmX	Box.style.borderRightWidth = "0"}		if (mmX < mmPX+2){	mBxWd = (mmX+mBxWd)-mmPX	mmX=mmPX	Box.style.borderLeftWidth = "0"}		mBxWd = mBxWd -2	mBxHt = mBxHt -2		if ((mmX+mBxWd<mmPX)||(mmX>mmPX+mmWd)||(mmY+mBxHt<mmPY)||(mmY>mmPY+mmHt)){Box.style.borderWidth="0"}	myBox.pixelLeft = mmX	myBox.pixelTop = mmY	document.images.Box.width = mBxWd	document.images.Box.height = mBxHt 	myBox.visibility = 'visible'	//controlToPage();	rset=0;	return;}//=============================================================================================//Changes tab depending on what area is selected//// 1 = Proposals Map : 2 = Inset Mapsfunction autabChange (posName){strValue = posName.valuetab = strValue.substring(strValue.length-1,strValue.length);changeTab(tab)tabChange(tab)}//=============================================================================================//Changes the tab image// this function is called from selecticting the tab on the web page or from the function 'autabChange'function tabChange(tabNo){			if (tabNo != currentTab){changeTab(tabNo);document.images["tab1"].src = "images/tab"+tabNo+".gif"}	currentTab = tabNo;}//=============================================================================================//if accessed from link in written statement, this instructs applet to goto identified area in link.function wStatement(){	Box.style.borderWidth = "0"	if (document.location.search.substring(1)!=""){	var myArray = (document.location.search.substring(1)).split('&');	updatePositionString(myArray[0]);	tabChange(myArray[1]);miniMap();Box.style.borderWidth = "2";}	rset = 1;		}//=============================================================================================// pass control to html page, away from applet.function controlToPage(){	document.getElementById('controlToPage').focus();	return true}//=============================================================================================// Pan & Zoom keys: arrow keys - pan   shift - zoom in  ctrl - zoom out// - decrease tab   + increase tab  (no shift)//NOTE: ONLY USES LOGICAL SCALEfunction keyPressed(){	var a = event.keyCode;	if (a > 36 || a <41){keyAction(a);}	return;}//=============================================================================================// Not used!!!!function setCookie (){	var name="Job Name";	var value="Area";	var days=1	if (days)	{		var date = new Date();		date.setTime(date.getTime()+(days*24*60*60*1000));		var expires = "; expires="+date.toGMTString();	}	else var expires = "";	document.cookie = name+"="+value+expires+"; path=/";	var nameEQ = name + "=";	var ca = document.cookie.split(';');	for(var i=0;i < ca.length;i++)	{		var c = ca[i];		while (c.charAt(0)==' ') c = c.substring(1,c.length);		if (c.indexOf(nameEQ) == 0) alert (c.substring(nameEQ.length,c.length));	}	return null;}//=============================================================================================// Not used!!!!function myAlert()	{	alert("!");	}//=============================================================================================//NOT USED//removes illegal characters from the Postcode TextBoxfunction validate()	{	var badChr = /[^a-z0-9]/gi;	if(strSearchString.value.match(badChr)){	strSearchString.value=strSearchString.value.replace(badChr,'');}	keyPressed();	}//=============================================================================================//after a postode search this returns the policy information for that postcodefunction getPostcodePolicy()	{		MM_swapImage('reset','','../images/reset.gif','panmap','','../images/panmap.gif','zoomin','','../images/zoomin.gif','zoomout','','../images/zoomout.gif','policies','','../images/policy_.gif',1);MM_showHideLayers('Layer1','','hide')	document.ChkApplet.getPostcodePolicy ();	}//=============================================================================================function keyAction(a){	gtInfo = document.ChkApplet.getScale();	gtInfo = gtInfo +""	var ugmX = parseInt(gtInfo.substr(0,6));	var ugmY = parseInt(gtInfo.substr(9,6));	var usSC = parseInt(gtInfo.substr(gtInfo.lastIndexOf('/')+1).replace (/ /g,''));	if (isNaN(ugmX)==1) {ugmX=((gmX+(gmX1-gmX)/2));ugmY=(gmY+((gmY1-gmY)/2))}	var newUgmY = ugmY	var newUgmX = ugmX//Pan	if (a == 38&&!event.shiftKey) {newUgmY = newUgmY+(usSC*(460/28.346))/200;document.ChkApplet.panMap(newUgmX, newUgmY, usSC)};	if (a == 40&&!event.shiftKey) {newUgmY = newUgmY-(usSC*(460/28.346))/200;document.ChkApplet.panMap(newUgmX, newUgmY, usSC)};	if (a == 39&&!event.shiftKey) {newUgmX = newUgmX+(usSC*(460/28.346))/200;document.ChkApplet.panMap(newUgmX, newUgmY, usSC)};	if (a == 37&&!event.shiftKey) {newUgmX = newUgmX-(usSC*(460/28.346))/200;document.ChkApplet.panMap(newUgmX, newUgmY, usSC)};//Zoom		if (a == 38&&event.shiftKey) {document.ChkApplet.zoomInLogical(newUgmX, newUgmY,i)};	if (a == 40&&event.shiftKey) {document.ChkApplet.zoomOutLogical(newUgmX, newUgmY,i)};//Tabs		if (a ==37&&event.shiftKey && tabName > 1) {tabName--;tabChange(tabName,i)};	if (a ==39&&event.shiftKey && tabName < tabMax) {tabName++;tabChange(tabName)};	miniMap();	return}//=============================================================================================function myAlert(aString){Alert (aString);}function blankPolicy(){return overlib("", TIMEOUT, 240000, WIDTH, 200, HEIGHT, 150, FIXX, 550, FIXY, 420, PADX, 10, 10, PADY, 10, 10  )}
