

		
//Thematic Options

var arThematicOptions=new Array();

function thematicOptions(id){
	this.id=id;
	this.colorScale="";
	this.colorChip="";
	this.classType="";
	this.Classes="";
	this.normalizeBy="";
	this.fieldSelect="";
	this.tablename="";
	this.DSN="";
	this.dataKey="";
	this.axlKey="";
	this.Axl_ID;
	this.classCount=5;
	this.active="Off";
}

function getThematicOptionsName(id){
return eval('theme_'+id);
}

function addThematicOptionsObject(item,MapLayerTreeItemId){
			eval('theme_'+item+'=new thematicOptions(MapLayerTreeItemId)');
			myName='theme_'+item;
			arThematicOptions[myName]=eval(myName);
			for (var myItem in arThematicOptions) {
			//alert(arThematicOptions[myItem].id);
			}
}
var remote=false;
function test_arThematicOptions(){
//return false;
			var myText="";
			for (var item in arThematicOptions) {
			myText+="<b>"+item+"</b><br>";
				for (var item2 in arThematicOptions[item]) {
				if(arThematicOptions[item][item2].length > 0)myText+="<strong>"+item2+"</strong>="+arThematicOptions[item][item2]+"<br>";
				}
			myText+="<hr>";
			}
			if(!remote){
				tmpz=window.open('','','width=500px,height=300px,scrollbars,resizable');
				tmpz.document.write("<html><body>"+myText+"</body></html>");
				tmpz.document.close();
				tmpz.moveTo(1255,0);
			}
			{
				tmpz.document.write("<html><body>"+myText+"</body></html>");
				tmpz.document.close();
				remote=1;
				
			}
}
function test_inputObjects(){
id=335;

}
		var activeThematicOptions=0;
		var activeThematic_Axl_ID=0;
		
		
function setProperty(id,propname,value){
			try{
			myTheme=getThematicOptionsName(id);
			myTheme[propname]=value;
			activeThematicOptions=id;
			}
			catch(err){
			//alert("there's been an error updating activeThematicOptions\n\n"+err);
			doNothing();
			}
}


		
		
		function getThematicOptions(item,MapLayerTreeItemId,Axl_ID,classCount,datasource){
		
		//alert("getThematicOptions  = "+item+"\n"+MapLayerTreeItemId);
		addThematicOptionsObject(item,MapLayerTreeItemId);
		
		////setProperty(item,"DSN",datasource);
		//alert("start the process for "+MapLayerTreeItemId);
		DWREngine._execute(_cfscriptLocation, null, 'sendAJAX','component','MapGUI.getThematicOptionsForLayer','item',item, 'MapLayerTreeItemId',MapLayerTreeItemId, 'Axl_ID',Axl_ID,'classCount',classCount, 'datasource',datasource,openThematicOptions);
		////activeThematicOptions=MapLayerTreeItemId;
		////activeThematic_Axl_ID=Axl_ID;
		}
		/*
		function getThematicOptionsForData(MapLayerTreeItemId,MapLayerID,classCount,datasource){
		DWREngine._execute(_cfscriptLocation, null, 'sendAJAX','component','MapGUI.getThematicOptionsForLayer', 'MapLayerTreeItemId',MapLayerTreeItemId, 'MapLayerID',MapLayerID,'classCount',classCount, 'datasource',datasource,openThematicOptions);
		activeThematicOptions=MapLayerTreeItemId;
		activeThematic_Axl_ID=Axl_ID;
		}
		*/
		function hideThematicOptions(item){
		document.getElementById('div_thematicOptions_'+item).innerHTML = '';
		setProperty(item,"active","Off");
		}
		
		function openThematicOptions(myObject){
		//alert("returned to openThematicOptions was "+myObject.ITEM);
		result=myObject.MYRESULTS;
		setProperty(myObject.ITEM,"DSN",myObject.DSN);
		setProperty(myObject.ITEM,"tablename",myObject.TABLENAME);
		setProperty(myObject.ITEM,"dataKey",myObject.DATAKEY);
		setProperty(myObject.ITEM,"axlKey",myObject.AXLKEY);
		setProperty(myObject.ITEM,"Axl_ID",myObject.AXL_ID);
		uuid=myObject.MYUUID;
		//close all other thematic options ???????
		/*
		<cfoutput query="qGetLayers">
			<cfif arrayLen(session.mapExperience.MYTREEITEMS[MAPLAYERTREEITEMID].AXL_LAYERS)   AND len(qGetLayers.Thematic_AXL_ID)>
				//document.getElementById('thematicOptions_#qGetLayers.MAPLAYERTREEITEMID#').innerHTML = '';
			</cfif>
		</cfoutput>
		*/
		//open new thematic options
			//try{
				//document.getElementById('thematicOptions_'+object.ITEM).innerHTML = result;
				
				//this WORKS
				//alert(document.getElementById('div_thematicOptions_'+myObject.ITEM).id+" works");
				//alert(result);
				/*
				tmpz=window.open('','','width=400px,height=600px,scrollbars,resizable');
				tmpz.document.write("<html><body>"+result+"</body></html>");
				tmpz.document.close();
				tmpz.moveTo(1255,0);
				
				*/
				//this does not WORK
				document.getElementById('div_thematicOptions_'+myObject.ITEM).innerHTML = result;
				setProperty(myObject.ITEM,"active","On");
			/*}
			catch(err){
			alert("js error: "+err);
			}*/
			
		}
//Color Chips
		function getColorChips(classCount,defaultChip,MapLayerTreeItemId,item){
		DWREngine._execute(_cfscriptLocation, null, 'sendAJAX','component','MapGUI.getColorChips','classCount',classCount,'defaultChip',defaultChip,'MapLayerTreeItemId',MapLayerTreeItemId,'item',item, updateColorChips);
		}
		function updateColorChips(myObject){
		content=myObject.MYRESULTS;	
		MapLayerTreeItemId=myObject.MAPLAYERTREEITEMID;
		var item=myObject.ITEM;
		//alert("updateColorChips "+ item);
		//alert(MapLayerTreeItemId);
		//findSelectedColor();
		//alert(content);
		//alert(activeThematicOptions);
		
		//setTimeout("getThematicData('"+activeThematic_Axl_ID+"','"+myOption.choosenField+"','"+myOption.colorChip+"','"+myOption.colorScale+"','"+myOption.classCount+"','"+myOption.classType+"');",0000);
		
		document.getElementById('div_colorChips_'+item).innerHTML=content;
 			updateGenericFields(item);
			var myOption=getThematicOptionsName(item);
			var choosenField=myOption.fieldSelect;
			var normalizeBy=myOption.normalizeBy;
			var myColorChip=myOption.colorChip;
			var myDSN=myOption.DSN;
			var myTablename=myOption.tablename;
			var myDataKey=myOption.dataKey;
			
			//activeThematic_Axl_ID=document.getElementById('theme_AXL_ID').value;
			//updateClassification(MapLayerTreeItemId)
			
			activeThematic_Axl_ID=0;
			var myColorScale="";
			var classCount=myOption.classCount;
			var classType=myOption.classType;
			
			//alert("myColorChip ["+myColorChip+"]");
			//now that chips have been updated, pull chip values from selected one
			myColorScale=myOption.colorScale;
			
			if(item!="wiz")getThematicData(MapLayerTreeItemId,activeThematic_Axl_ID,myDSN,myTablename,myDataKey,choosenField,normalizeBy,myColorChip,myColorScale,classCount,classType,item);
			else{
				//if this is not traditional table-driven mapping then do absolutely nothing until wizard is submitted
			}
		}
//Thematic Fields
		function getThematicData(MapLayerTreeItemId,activeThematic_Axl_ID,myDSN,myTablename,myDataKey,choosenField,normalizeBy,myColorChip,myColorScale,classCount,classType,item){
		testCount++;
		//alert(txt);
		//alert("here: getThematicData "+item);
		
		if(choosenField != "None"){
		//alert("I'm hitting getThamticData "+testCount+" times");
		DWREngine._execute(_cfscriptLocation, null, 'sendAJAX','component','MapGUI.getThematicData','MapLayerTreeItemId',MapLayerTreeItemId,'Axl_ID',activeThematic_Axl_ID,'DSN',myDSN,'Tablename',myTablename,'primaryKey',myDataKey,'fieldname',choosenField,'normalizeBy',normalizeBy,'colorChip',myColorChip,'colorScale',myColorScale,'classCount',classCount,'classType',classType,'item',item,updateThematicData);
		}
		}
		
		function updateThematicData(myObject){
		var content=myObject.MYRESULTS;
		var MapLayerTreeItemId=myObject.MAPLAYERTREEITEMID;
		var item=myObject.ITEM;
		//alert(content);
		//alert("updateThematicData and we have "+item);
		document.getElementById('div_thematicData_'+item).innerHTML=content;
		}
		function updateGenericFields(item){
		//alert("updateGenericFields: "+item);
			for(var i=0;i<2;i++){
				if(document.getElementsByName('classType_'+item)[i].checked){
				setProperty(item,'classType',document.getElementsByName('classType_'+item)[i].value);
				setWizardOptions('classType:'+document.getElementsByName('classType_'+item)[i].value);
				}
			}
		var myHelpText="";
		//alert("rooster "+document.getElementsByName('colorchips_'+item).length);
			for(var i=0;i<document.getElementsByName('colorchips_'+item).length;i++){
			myHelpText+=document.getElementsByName('colorchips_'+item)[i].id+"\n";
				if(document.getElementsByName('colorchips_'+item)[i].checked){
				//alert("yes "+i);
					setProperty(item,'colorChip',(i+1).toString());
					setProperty(item,'colorScale',document.getElementsByName('colorchips_'+item)[i].value);
					
					
					setWizardOptions('colorChip:'+(i+1).toString());
					setWizardOptions('colorScale:'+document.getElementsByName('colorchips_'+item)[i].value);
					}						
			}
					//alert("myHelpText: "+myHelpText);	
		/*
//
		var myScale="none";
		var myColorCount=1;
 		var group,i;
		 		group=document.getElementsByTagName('input');
				txt="";
				txt+="My ID = "+id+"\n\n";
				for(i in group){
					myItem=document.getElementsByTagName('input')[i];
						if(myItem.id)txt+=myItem.id+" \n";
					if(myItem.id && myItem.id.length >0){
						if(myItem.id.indexOf(id) > 0){
						//txt+=myItem.id+" \n";
							if(myItem.id.indexOf('colorchips') >= 0){
								//alert(myItem.value);
								//alert(myItem.checked);
								if(myItem.checked){
								setProperty(id,'colorChip',myColorCount.toString());
								setProperty(id,'colorScale',myItem.value);
								//alert("my new color scale is "+myItem.value);
								}
								myColorCount++;
							}
							
							if(myItem.id.indexOf('Eq') >= 0 && myItem.checked)setProperty(id,'classType',myItem.value);
							else if(myItem.id.indexOf('Quant') >= 0 && myItem.checked) setProperty(id,'classType',myItem.value);
							
						}
					}
					
		  		}
				//alert(txt);
*/
		}
		
		function updateClassification(id,item){
 					updateGenericFields(item);
		
						setProperty(item,'fieldSelect',document.getElementById('fieldSelect_'+item).value);
						setProperty(item,'normalizeBy',document.getElementById('normalizeBy_'+item).value);
						setProperty(item,'classCount',document.getElementById('NumberOfClasses_'+item).value);
						setWizardOptions('classCount:'+document.getElementById('NumberOfClasses_'+item).value);
		
		myOption=getThematicOptionsName(item);
		//loop over color chips and collect color choosen
		myColorScaleValue='not set';
		for(var i=1;i<document.getElementById('NumberOfClasses_'+item).value;i++){
		if(document.getElementById("colorchips_"+item+"_"+i).checked)myColorScaleValue=document.getElementById("colorchips_"+item+"_"+i).value;
		}
		setWizardOptions('colorScale:'+myColorScaleValue);
		setProperty(item,'colorScale',myColorScaleValue);
		getColorChips(myOption.classCount,myOption.colorChip,id,item);	
		//setTimeout("getThematicData('"+id+"','"+myOption.choosenField+"','"+myOption.colorChip+"','"+myOption.colorScale+"','"+myOption.classCount+"','"+myOption.classType+"');",0000);
	
		}
function modifyClasses(classCount){
				var i;
				var k=2;
				var j;
				for(i=classCount;i>=1;i--){//alert(i);
					if(i==1){
					//document.getElementById('minRange_'+i).value
					}
					else{
					j=i-1;
					if(!isNaN(document.getElementById('maxRange_'+j).value))document.getElementById('minRange_'+i).value=document.getElementById('maxRange_'+j).value;
					}
				
				}		
			}		
			
function validateClasses(item,MapLayerTreeItemId,classCount){
			//alert("validateClasses: "+item);
			var myOption=getThematicOptionsName(item);
			var classCount=myOption.classCount;
				var numericTest=true;
				var continutityTest=true;
				var directionalTest=true;
				alertText="";
				

				//numericTest
				for(var i=1;i<=classCount;i++){//alert(i);
					if(isNaN(document.getElementById('minRange_'+i).value) || isNaN(document.getElementById('maxRange_'+i).value)){numericTest=false;break;}
					}		
					if(numericTest==false)alertText+="All values must be numeric\n";
				
				//directionalTest
				for(i=1;i<=classCount;i++){//alert(i);

					if(parseFloat(document.getElementById('minRange_'+i).value) >= parseFloat(document.getElementById('maxRange_'+i).value)){directionalTest=false;break;}
					}		
					if(directionalTest==false)alertText+="Ranges for each class must be ordered from low to high\n";
				
				//continutityTest
				for(i=2;i<=classCount;i++){//alert(i);
					j=i-1;
					if(parseFloat(document.getElementById('maxRange_'+i).value) < parseFloat(document.getElementById('maxRange_'+j).value)){continutityTest=false;break;}
					}	
					if(continutityTest==false)alertText+="Classes may not overlap\n";

				
				if(alertText.length)alert("Please check the following:\n\n"+alertText);
				else {
						//document.getElementById('myClasses').value='';
						
						var myTempClasses='';
						for(i=1;i<=classCount;i++){
							myTempClasses+=document.getElementById('minRange_'+i).value+"-"+document.getElementById('maxRange_'+i).value+"|";
							}	
							setProperty(item,'Classes',myTempClasses);
					addThematicMapLayer(item,MapLayerTreeItemId);
					}
			}					
		function addThematicMapLayer(item,MapLayerTreeItemId){
			//alert(document.getElementById('myClasses').value);
			//alert("addThematicMapLayer "+item);
			var myOption=getThematicOptionsName(item);
			var Axl_ID=myOption.Axl_ID;
			var Classes=myOption.Classes;
			var Colors=myOption.colorScale;
			DWREngine._execute(_cfscriptLocation, null, 'sendAJAX','component','MapGUI.addThematicMapLayer', 'Axl_ID',Axl_ID,'Classes',Classes,'Colors',Colors, updatemap);
			}
