//Generator: Alan Smith svg@ons.gov.uk
//Modified By: Stuart Barrett stuart.barrett@met.police.uk

var Bors = ['AB','AC','AD','AE','AF','AG','AA','AH','AJ','AK','AL','AM','AN','AP','AQ','AR','AS','AT','AU','AW','AX','AY','AZ','BA','BB','BC','BD','BE','BF','BG','BH','BJ','BK','ID','SO'];


var myBor;
var myDep;
var polycolour;
var svgStyle;
var svgObj;
var svgdoc;
var legendObj;
var legendDet;
var legendStyle;
var legenddoc;
var svgvaldoc;
var svgdistrictObj;
var svgcodeObj;
var svgvalObj;


function setMap()	{
	myDep = (document.all) ? Number(selectDepForm.myDep.selectedIndex) + 1: Number(document.selectvariable.document.selectDepForm.myDep.selectedIndex) + 1;
	colourMe();	
}

function compareNumbers(a, b) {
   return a - b
}

function colourMe()
{
	if (mbSVG)
	{
		colourMeOld();
	}
	TellMe("");

}

function colourMeOld()	{


	nrClasses = (document.all) ? selectClassesForm.myClass.value : document.selectnrclasses.document.selectClassesForm.myClass.options[document.selectnrclasses.document.selectClassesForm.myClass.options.selectedIndex].value;
	mapColour = (document.all) ? selectcolourform.choosecolour.value : document.selectcolours.document.selectcolourform.choosecolour.options[document.selectcolours.document.selectcolourform.choosecolour.options.selectedIndex].value;
	myDep = (document.all) ? selectVarForm.myVar.value: document.selectvariable.document.selectVarForm.myVar.value;


	var mypoly;
	//index = (document.all) ? Number(selectVarForm.myVar.selectedIndex) + 1 : Number(document.selectvariable.document.selectVarForm.myVar.selectedIndex) + 1;
	//index = (document.all) ? selectVarForm.myVar.value : document.selectvariable.document.selectVarForm.myVar.value;
	
	var myArray = new Array();
	var myThresholds = new Array()
	svgdoc = (document.all) ? svgdoc = keystatmap.getSVGDocument() : document.svgplugin.document.embeds[0].getSVGDocument();
	nrClasses = (document.all) ? selectClassesForm.myClass.value : document.selectnrclasses.document.selectClassesForm.myClass.options[document.selectnrclasses.document.selectClassesForm.myClass.options.selectedIndex].value;
	var numnull = 0;
	
	for (i = 0; i < Bors.length; i++) {
		myArray[i]=boroughValue(Bors[i],index(),0);
		if (myArray[i] == null)	{
		numnull=numnull+1;
		//traps for null numbers in the data
		}
	}
	

	myArray.sort(compareNumbers);
	
	var validBors= myArray.length-numnull;
	threshold = validBors / nrClasses;
	myThreshold = threshold;
	myThresholds[0] = myArray[0] - 0.01;//sets the bottom value for the thresholds 0.01
	for (i = 1; i < nrClasses; i++) {
		myThresholds[i] = myArray[Math.round(myThreshold)];
		myThreshold = myThreshold + threshold;
	}


	myThresholds[i] = myArray[validBors - 1];

	if (nrClasses == 1  && mapColour == 1) {
		var myColors = new Array("#BDCCEF");
	}
	if (nrClasses == 2  && mapColour == 1) {
		var myColors = new Array("#BDCCEF","#4B73D3");
	}
	if (nrClasses == 3 && mapColour == 1) {
		var myColors = new Array("#DEE5F7","#8DA7E3","#3F6AD1");
	}
	if (nrClasses == 4 && mapColour == 1) {
		var myColors = new Array("#E6ECF9","#B9C9EE","#5A7FD7","#073EC3");
	}
	if (nrClasses == 5 && mapColour == 1) {
		var myColors = new Array("#F3F6FC","#DAE2F6","#97AEE6","#3E69D0","#002BB8");
	}
	
	
	if (nrClasses == 1 && mapColour == 2) {
		var myColors = new Array("#CFAACF");
	}
	if (nrClasses == 2 && mapColour == 2) {
		var myColors = new Array("#CFAACF","#740874");
	}
	if (nrClasses == 3 && mapColour == 2) {
		var myColors = new Array("#ECDEEC","#b57bb5","#740874");
	}
	if (nrClasses == 4 && mapColour == 2) {
		var myColors = new Array("#ECDEEC","#CFAACF","#944194","#740874");
	}
	if (nrClasses == 5 && mapColour == 2) {
		var myColors = new Array("#ECDEEC","#CFAACF","#b57bb5","#944194","#740874");
	}
	
	if (mapColour==3){
		var myColors=new Array("red","green","blue","purple");
	}
	
	for (i = 0; i < Bors.length; i++)	{
		
		if(Bors[i]!="AA")
		{
			var svgReset = svgdoc.getElementById(Bors[i]);
			var svgResetStyle = svgReset.getStyle();
			svgResetStyle.setProperty('fill','gray');
		}
	}
	
	for (i = 0; i < Bors.length; i++) {
		if(Bors[i]!="AA")
		{
			myid = Bors[i];
			myValue = boroughValue(Bors[i],index(),0);
			svgObj = svgdoc.getElementById(myid);
			svgStyle = svgObj.getStyle();
			for (j = 0; j < myColors.length; j++) {
				if (mapColour==3)
				{
					svgStyle.setProperty('fill',myColors[Math.floor(Math.random()*4)]);
				}
				else if ((parseFloat(myValue) > parseFloat(myThresholds[j])) && (parseFloat(myValue) <= parseFloat(myThresholds[j+1]))) {
					svgStyle.setProperty('fill',myColors[j]);
				}
			}
		
		}									
	}

	legenddoc = (document.all) ? svgLeg.getSVGDocument() : document.svglegend.document.embeds[0].getSVGDocument();
	legendObj = legenddoc.getElementById("keytitle");
	legendObj = legendObj.getFirstChild();
	legendDet = legenddoc.getElementById("subtitle");
	legendDet = legendDet.getFirstChild();

    legendObj.setData(rateKeys([myDep]));
    //legendDet.setData(keyDetail([myDep]));
       
	for (i = 0; i < 5; i++) {
		legendObj = legenddoc.getElementById("lval"+i);
		legendStyle = legendObj.getStyle();
		legendStyle.setProperty('visibility','hidden');		
	}
	

	for (i = 0; i < nrClasses; i++) {
		legendObj = legenddoc.getElementById("textVal"+i);
        legendObj = legendObj.getFirstChild();
        	if	(i == 0)	{
	    	legendObj.setData(myThresholds[i+1]+" or less");
    		}
    
    		else if (i == nrClasses-1)	{
        	legendObj.setData("Greater than "+myThresholds[i]);
    		}
    
    		else 	{
        	legendObj.setData("Greater than "+myThresholds[i]+" and up to "+(myThresholds[i+1]));
    		}
    	
    legendObj = legenddoc.getElementById("val"+i);
	legendStyle = legendObj.getStyle();
	legendStyle.setProperty('fill',myColors[i]);
	legendObj = legenddoc.getElementById("lval"+i);
	legendStyle = legendObj.getStyle();
	legendStyle.setProperty('visibility','visible');
	}

	if (numnull>0)	{
	legendObj = legenddoc.getElementById("nullval");
	legendStyle = legendObj.getStyle();
	legendStyle.setProperty('visibility','visible');	
	}
	else	{
	legendObj = legenddoc.getElementById("nullval");
	legendStyle = legendObj.getStyle();
	legendStyle.setProperty('visibility','hidden');		
	}

	legendObj = legenddoc.getElementById("keytitle");
	var legendsubObj = legenddoc.getElementById("subtitle");
	legendPos = Number (legendObj.getAttribute("y"));
	var sublegendPos = Number (legendObj.getAttribute("y"));

if (nrClasses == 2) {
	legendPos = 70;
	sublegendPos = 90;
	legendObj.setAttribute ("y", legendPos);
	legendsubObj.setAttribute ("y", sublegendPos);
	}
	
	if (nrClasses == 3) {
	legendPos = 50;
	sublegendPos = 70;
	legendObj.setAttribute ("y", legendPos);
	legendsubObj.setAttribute ("y", sublegendPos);
	}
	
	if (nrClasses == 4) {
	legendPos = 30;
	sublegendPos = 50;
	legendObj.setAttribute ("y", legendPos);
	legendsubObj.setAttribute ("y", sublegendPos);
	}
	
	if (nrClasses == 5) {
	legendPos = 10;
	sublegendPos = 30;
	legendObj.setAttribute ("y", legendPos);
	legendsubObj.setAttribute ("y", sublegendPos);
	}

}






function TellMeOld(Bor)	{
	myBor=Bor;
	var BorName = boroughValue(myBor,0,0);
	var myBorObj = myBor;
	var MyBorInfo = boroughValue(myBor,index(),0);

	var	svgvaldoc = (document.all) ? svgVal.getSVGDocument() : document.svgvalues.document.embeds[0].getSVGDocument(); 				
	var svgcodeObj = svgvaldoc.getElementById("textBorough");
	svgcodeObj = svgcodeObj.getFirstChild();
	var svgvalObj = svgvaldoc.getElementById("textBoroughValue");
	svgvalObj = svgvalObj.getFirstChild();
	svgcodeObj.setData(BorName);
	svgvalObj.setData(MyBorInfo);
	
	//MPS Value
	svgvalObj = svgvaldoc.getElementById("textMPSValue");
	svgvalObj = svgvalObj.getFirstChild();
	svgvalObj.setData(MPSValue(index(),0));

	svgObj = svgdoc.getElementById(myBorObj);
	svgStyle = svgObj.getStyle();
	polycolour = svgStyle.getPropertyValue("fill");
	svgStyle.setProperty("fill","#FFFF00");

}

function EmptyMe()	{
	if (mbSVG)
	{
		var	svgvaldoc = (document.all) ? svgVal.getSVGDocument() : document.svgvalues.document.embeds[0].getSVGDocument(); 				
		var svgcodeObj = svgvaldoc.getElementById("textBorough");
			svgcodeObj = svgcodeObj.getFirstChild();
		var svgvalObj = svgvaldoc.getElementById("textBoroughValue");
			svgvalObj = svgvalObj.getFirstChild();
			
		svgcodeObj.setData(" ");
		svgvalObj.setData(" ");
		
		//Clear MPS Value
		svgvalObj = svgvaldoc.getElementById("textMPSValue");
		svgvalObj = svgvalObj.getFirstChild();
			
		svgcodeObj.setData(" ");
		svgvalObj.setData(" ");
	
	
		svgStyle.setProperty("fill",polycolour); 
	}
	else
	{
		//Added by Sam, 21-04-04 - modified by Stuart, 25-04-06
		if(mbArea==1?sArea="Ward":sArea="Borough");
		documentAll("nameofselectedborough").innerHTML="No " + sArea + " Selected";
	}
}

function layercontrol(checkbox, layername){
	var svgObj;
	var svgdoc = document.keystatmap.getSVGDocument();
	svgObj = svgdoc.getElementById(layername);
	var svgBoroughs = svgdoc.getElementById('boroughs');

	svgObj.setAttribute = (!checkbox.checked) ? svgObj.setAttribute('display','none') : svgObj.setAttribute('display','inline');

	var mapBackground = svgdoc.getElementById('background').getAttribute('display');

	if (mapBackground=="inline") {
	svgBoroughs.setAttribute('stroke','red');
	}
	else	{
	svgBoroughs.setAttribute('stroke','darkgray');
	}


}

