// aimsFilterRender.js
/*
*  JavaScript template file for ArcIMS HTML Viewer Interactive Filter
*		ArcIMSparam.js, 
*
*/

//------------------------- Darina -----------------------------

var aimsFilterPresent=false;

//***EV*** variabelen naar hier verhuisd en als default filtering uitschakelen

var useFilter = false;
var hasFilter = false;

var FilterQuery = new Array();

for (var i = 0; i<=100; i++) FilterQuery[i] = "";

/*
FilterQuery[0] = "";
FilterQuery[1] = "";
FilterQuery[2] = "";
FilterQuery[3] = "";
FilterQuery[4] = "";
FilterQuery[5] = "";
FilterQuery[6] = "";
FilterQuery[7] = "";
FilterQuery[8] = "";
FilterQuery[9] = "";
*/

var FilterLayer = new Array();
var FilterLayerField = new Array();
var FilterLayerValue = new Array();

var FilterLayerIndex = -1;

//***EV*** 

/*
***************************************************************************************
Layer Filtering
***************************************************************************************
*/

function sendFilterString(theString) {
	theString = fixSingleQuotes(theString);
	theString = swapQuotes(theString);
	theString = makeXMLsafe(theString);
	FilterQuery[ActiveLayerIndex] = theString;
	sendMapXML();
}

// write interactive ValueRenderer strings in Map XML request
function addFilterToMap(i) {
	var queryString = "";
	var j=-1;
	for (var k=0;k<FilterLayer.length;k++) {
		if (FilterLayer[k]==LayerName[i]) j=k;
	}
	if (FilterQuery[i] != "") {
		queryString = '>\n<SPATIALQUERY where="';
		queryString += FilterQuery[i] + '" />\n</LAYERDEF>\n';
	} else 	if (j!=-1) {
		if (FilterLayerValue[j]!="") {
			// add custom filtering for this request
			
			if(FilterLayerField[j] != "")  {				
				//set the Layer Fields info
				setLayerFields(i);
				var m=-1;
				//get the index of the the Filter field
				for (var k=0; k < LayerFields.length; k++) {					
					if (LayerFields[k] == FilterLayerField[j]) {						
						m = k;
						break;
					}
				}				
				if (m != -1) {
					var fieldType = parseInt(LayerFieldType[m]);
					var strValue = "";
				
					queryString = '>\n<SPATIALQUERY where="';
								
					if ((fieldType >= 12) && (fieldType <= 15)) {
//						strValue = "(&apos;" + FilterLayerValue[j].toUpperCase().replace( new RegExp(";", "g"),  "&apos;,&apos;") + "&apos;)";
//
//***EV*** "touppercase" weggelaten voor de filterlayervalue
//
						strValue = "(&apos;" + FilterLayerValue[j].replace( new RegExp(";", "g"),  "&apos;,&apos;") + "&apos;)";
						FilterQuery[i] = FilterLayerField[j].toUpperCase() + ' IN ' + strValue;
					
					} else if ((fieldType == 4) || (fieldType == 5) || (fieldType == 6) || (fieldType == 8)) {
						strValue = "(" + FilterLayerValue[j].replace( new RegExp(";", "g"), ",") + ")";
						FilterQuery[i] = FilterLayerField[j] + ' IN ' + strValue;
					} else if (fieldType == 91) {					 	
						// or it is everything else, so format accordingly
						FilterQuery[i] = FilterLayerField[j] + '=' + "{ts \"" + formatDate(FilterLayerValue[j]) + "\"}";
						FilterQuery[i] = fixSingleQuotes(FilterQuery[i]);
						FilterQuery[i] = swapQuotes(FilterQuery[i]);
						FilterQuery[i] = makeXMLsafe(FilterQuery[i]);
					}					
					
					queryString += FilterQuery[i] + '" />\n</LAYERDEF>\n';
					//alert(FilterQuery[i]);
				} else {
					queryString = '/>\n';
					FilterQuery[i] = "";	
				}				
			}
			else {
				queryString = '/>\n';
				FilterQuery[i] = "";
			}

			
			//alert( queryString );
			// </aje>
		} else  {
			queryString += '/>\n';
			FilterQuery[i] = "";
		}
	} else {
		queryString += '/>\n';
		FilterQuery[i] = "";
	}
	
	//alert(queryString);
	return queryString;
}


function clearFilter() {
	for (var i = 0; i < FilterQuery.length; i++) FilterQuery[i] = "";
	for (var i = 0; i < FilterLayerValue.length; i++) FilterLayerValue[i] = "";
	sendMapXML();
}

function clearActiveLayerFilter() {
	FilterQuery[ActiveLayerIndex] = "";
	var j=-1;
	for (var k=0;k<FilterLayer.length;k++) {
		if (FilterLayer[k]==LayerName[ActiveLayerIndex]) j=k;
	}
	if (j!=-1) FilterLayerValue[j] = "";
	sendMapXML();
}

//-------------------- End Darina --------------------------
