var GX_geoFolder = "images/iconsnew/";
var imageWidth = 25;
var imageHeight = 25;

var allIcons = [];
var GX_iconCompany = GX_geoFolder + "company_p.png";
var GX_iconCompanyImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconCompanyImg.src = GX_iconCompany; 
allIcons["Company"] = GX_iconCompany;
var GX_iconCompanyNews = GX_geoFolder + "company_p_news.png";
var GX_iconCompanyNewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconCompanyNewsImg.src = GX_iconCompanyNews; 
allIcons["Company_news"] = GX_iconCompanyNews;

var GX_iconEntertainment = GX_geoFolder + "entertainment_p4.png";
var GX_iconEntertainmentImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconEntertainmentImg.src = GX_iconEntertainment; 
allIcons["Entertainment"] = GX_iconEntertainment;
var GX_iconEntertainmentNews = GX_geoFolder + "entertainment_p4_news.png";
var GX_iconEntertainmentNewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconEntertainmentNewsImg.src = GX_iconEntertainmentNews; 
allIcons["Entertainment_news"] = GX_iconEntertainmentNews;

var GX_iconGovernmentBuilding = GX_geoFolder + "government_building_p.png";
var GX_iconGovernmentBuildingImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconGovernmentBuildingImg.src = GX_iconGovernmentBuilding; 
allIcons["Government Building"] = GX_iconGovernmentBuilding;
var GX_iconGovernmentBuildingNews = GX_geoFolder + "government_building_p_news.png";
var GX_iconGovernmentBuildingNewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconGovernmentBuildingNewsImg.src = GX_iconGovernmentBuildingNews; 
allIcons["Government Building_news"] = GX_iconGovernmentBuildingNews;

var GX_iconHealthcare = GX_geoFolder + "healthcare_p.png";
var GX_iconHealthcareImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconHealthcareImg.src = GX_iconHealthcare; 
allIcons["Healthcare"] = GX_iconHealthcare;
var GX_iconHealthcareNews = GX_geoFolder + "healthcare_p_news.png";
var GX_iconHealthcareNewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconHealthcareNewsImg.src = GX_iconHealthcareNews; 
allIcons["Healthcare_news"] = GX_iconHealthcareNews;

var GX_iconHotel = GX_geoFolder + "hotel_p.png";
var GX_iconHotelImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconHotelImg.src = GX_iconHotel; 
allIcons["Hotel"] = GX_iconHotel;
var GX_iconHotelNews = GX_geoFolder + "hotel_p_news.png";
var GX_iconHotelNewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconHotelNewsImg.src = GX_iconHotelNews; 
allIcons["Hotel_news"] = GX_iconHotelNews;

var GX_iconParking = GX_geoFolder + "parking_p.png";
var GX_iconParkingImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconParkingImg.src = GX_iconParking; 
allIcons["Parking"] = GX_iconParking;
var GX_iconParkingNews = GX_geoFolder + "parking_p_news.png";
var GX_iconParkingNewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconParkingNewsImg.src = GX_iconParkingNews; 
allIcons["Parking_news"] = GX_iconParkingNews;

var GX_iconRestaurant = GX_geoFolder + "restaurant_p2.png";	
var GX_iconRestaurantImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconRestaurantImg.src = GX_iconRestaurant; 
allIcons["Restaurant"] = GX_iconRestaurant;
var GX_iconRestaurantNews = GX_geoFolder + "restaurant_p2_news.png";	
var GX_iconRestaurantNewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconRestaurantNewsImg.src = GX_iconRestaurantNews; 
allIcons["Restaurant_news"] = GX_iconRestaurantNews;

var GX_iconPark = GX_geoFolder + "park_p.png";
var GX_iconParkImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconParkImg.src = GX_iconPark; 
allIcons["Park"] = GX_iconPark;
var GX_iconParkNews = GX_geoFolder + "park_p_news.png";
var GX_iconParkNewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconParkNewsImg.src = GX_iconParkNews; 
allIcons["Park_news"] = GX_iconParkNews;

var GX_iconPublicSafety = GX_geoFolder + "public_safety_p.png";
var GX_iconPublicSafetyImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconPublicSafetyImg.src = GX_iconPublicSafety; 
allIcons["Public Safety"] = GX_iconPublicSafety;
allIcons["Public Facilities"] = GX_iconPublicSafety;
var GX_iconPublicSafetyNews = GX_geoFolder + "public_safety_p_news.png";
var GX_iconPublicSafetyNewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconPublicSafetyNewsImg.src = GX_iconPublicSafetyNews; 
allIcons["Public Safety_news"] = GX_iconPublicSafetyNews;
allIcons["Public Facilities_news"] = GX_iconPublicSafetyNews;

var GX_iconSchool = GX_geoFolder + "school_p.png";
var GX_iconSchoolImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconSchoolImg.src = GX_iconSchool; 
allIcons["School"] = GX_iconSchool;
var GX_iconSchoolNews = GX_geoFolder + "school_p_news.png";
var GX_iconSchoolNewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconSchoolNewsImg.src = GX_iconSchoolNews; 
allIcons["School_news"] = GX_iconSchoolNews;

var GX_iconShopping = GX_geoFolder + "cart_p.png";
var GX_iconShoppingImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconShoppingImg.src = GX_iconShopping; 
allIcons["Shopping"] = GX_iconShopping;
var GX_iconShoppingNews = GX_geoFolder + "cart_p_news.png";
var GX_iconShoppingNewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconShoppingNewsImg.src = GX_iconShoppingNews; 
allIcons["Shopping_news"] = GX_iconShoppingNews;

var GX_iconA = GX_geoFolder + "a.png";
var GX_iconAImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconAImg.src = GX_iconA; 
allIcons["Adapx Point"] = GX_iconA;
var GX_iconANews = GX_geoFolder + "a_news.png";
var GX_iconANewsImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconANewsImg.src = GX_iconANews; 
allIcons["Adapx Point_news"] = GX_iconANews;

var GX_iconParcel = GX_geoFolder + "x.png";
var GX_iconParcelImg = new Image(imageWidth, imageHeight); //Cache the image
GX_iconParcelImg.src = GX_iconParcel; 
allIcons["Parcel"] = GX_iconParcel;

var featureCheckStatus = [];
var defaultONFeatures = [	"Company", 
					"Government Building",
					"Entertainment",
					"Healthcare",
					"Hotel",
					"Parking",
					"Restaurant",
					"Park",
					"Public Safety", "Public Facilities",
					"Shopping",
					"School",
					"Adapx Point"];
setAllFeatureStatus(true);
featureCheckStatus["Parcel"] = false;

function setAllFeatureStatus(value) {
	for(var i=0; i<defaultONFeatures.length; i++) 
		setFeatureStatus(defaultONFeatures[i], value);
}

function setFeatureStatus(name, value) {
	featureCheckStatus[name] = value;
	featureCheckStatus[name + "_news"] = value;
}

function GX_getMarker(gazType) {
	return allIcons[gazType];
}


// Called when a node-GX_text is clicked, toggles the branches
 // @param: the reference of the clicked node, i.e. the <li>
 function GX_showChildren(obj)
 {
	 //alert("show children");
     var children = obj.immediateDescendants();
     for(var i=0;i<children.length;i++)
     {
         if(children[i].tagName.toLowerCase()=='ul')
             children[i].toggle();
     }
 }
 
 // Called when a node's checkbox changes, toggles the child checkboxes recursively
 // @param: the reference of the clicked node, i.e. the <li>
 // @param: reference to self
 function GX_checkChildren(obj,srcObj)
 {
     var children = obj.immediateDescendants();
     for(var i=0;i<children.length;i++)
     {
         if(children[i].tagName.toLowerCase()=='input' && children[i].type=='checkbox' && children[i]!=srcObj)
             children[i].checked = srcObj.checked;
 
         // recursive call
         GX_checkChildren(children[i],srcObj);
     }
 }
 
 function GX_isChecked(obj)
 {
 	return obj.checked;
 }

	function GX_getMarkerZIndex(gazType, additionalData) {
		var zIndex = 100;
		if(additionalData) {
			zIndex += 100;
		}
		if(gazType == "Company")
			return zIndex;
		else if(gazType == "Restaurant")
			return zIndex+6;
		else if(gazType == "Hotel")
			return zIndex+7;
		else if(gazType == "Adapx Point")
			return zIndex+8;
		return zIndex+5;
	}
	
	function GX_toggleFeature(listObj, featureCheckbox) {
		var featureValue = featureCheckbox.checked;
		if(featureValue == true) {
			featureValue = false;
		} else {
			featureValue = true;
		}
		featureCheckbox.checked = featureValue;
		GX_featureChanged(listObj, featureCheckbox);
	}
	
	function GX_featureChanged(listObj, featureCheckbox)	{			
			//alert("feature Changes");
			var allChanged = (Element.readAttribute(listObj, "id") == "lst_All");
			var featureValue = featureCheckbox.checked;
			
			if(allChanged) {
				GX_checkChildren(listObj, featureCheckbox);
				setAllFeatureStatus(featureValue);
			} else {
				var featureName = Element.readAttribute(featureCheckbox, 'value');
				setFeatureStatus(featureName, featureValue);
			}		
						
			iconMgr.clearMarkers();
			GX_redrawMarkers();
			
			GX_refreshVisibleGazList(GX_getDefaultGazetteerSortState(), false);
		}
		
		function GX_initAllfeatures() {
			var allObj = document.getElementById('lst_All');
			allObj.checked = true;
			GX_checkChildren($("lst_All"), allObj);
		}
		
		function GX_isFeatureChecked(featureName) {
			/*
			var obj = $("lst_All");
			var children = obj.descendants();
		     for(var i=0;i<children.length;i++)
		     {
		
		         if(children[i].tagName.toLowerCase()=='input' && children[i].type=='checkbox' 
		         		&& children[i].readAttribute('value') == featureName) {
		         	 return children[i].checked;       
		          }
		     }
		
		     return false;
		     */
		     return featureCheckStatus[featureName];
		}
