function getCFJSONValueIndex(columns,attribute) {
	for(var i = 0; i < columns.length; i++) {
		if(attribute.toUpperCase() == columns[i]) return i;
	}
	return -1;
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') window.onload = func;
	else window.onload = function() { 
		oldonload();
		func();
	};
}

function addUnloadEvent(func) {
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function') window.onunload = func;
	else window.onunload = function() {
		oldonunload();
		func();
	};
}

function mapPackageComponents(cb, id, type) {
	if(cb.checked == true) {
		//add icons
		var ajaxobj = new AjaxObject("get", "/_com/cms/classes/2010_Packages/data.cfc", "?method=getPackageComponentLocations&PackageId=" + id + "&componenttype=" + type, mapPackageComponentLocations);
			ajaxobj.setHandlerParam([id, type]);
			ajaxobj.execute();
	} else {
		if(mapoverlays[activepackage][type].length > 0) {
			for(var i = 0; i < mapoverlays[activepackage][type].length; i++) {
				gmap.removeOverlay(mapoverlays[activepackage][type][i]);
			}
		}
	}
}
function mapPackageComponentLocations(xmlHttp,arr) {
	var data = eval('(' + xmlHttp.responseText + ')'); // create json object
	if(data.DATA.length > 0) {
		activepackage = "pkg_" + arr[0];
		activepackagetype = arr[1];
		var lat;
		var lng;
		var name;
		var marker;
		for(var i=0; i<data.DATA.length; i++) {
			lat = data.DATA[i][getCFJSONValueIndex(data.COLUMNS, "Lat")];
			lng = data.DATA[i][getCFJSONValueIndex(data.COLUMNS, "Lng")];
			name = data.DATA[i][getCFJSONValueIndex(data.COLUMNS, "SupplierName")];
			address = data.DATA[i][getCFJSONValueIndex(data.COLUMNS, "Address")];
			supplierid = data.DATA[i][getCFJSONValueIndex(data.COLUMNS,"SupplierId")];
			marker = new GMarker(new GLatLng(lat,lng));
			marker.bindInfoWindowHtml("<strong><a href='/lodging/supplierdetail.cfm?s=" + supplierid + "'>" + name + "</a></strong><br />" + address);
			gmap.addOverlay(marker);
			marker.setImage("/_images/icons/" + arr[1] + ".png");
			bounds.extend(new GLatLng(lat, lng));
		}
		gmap.setCenter(bounds.getCenter());
		gmap.setZoom(gmap.getBoundsZoomLevel(bounds));
	}
}

function mapLandmark(status,id,name,lat,lng) {
	activepackage = "lm_"+id;
	activepackagetype = "landmarks";
	if(status == true) {
		//add icons
		var marker = new GMarker(new GLatLng(lat,lng));
			marker.bindInfoWindowHtml("<strong>" + name + "</strong>");
			gmap.addOverlay(marker);
			marker.setImage("/_images/icons/landmarks.png");
	} else {
		//alert(mapoverlays[activepackage][activepackagetype].length);
		if(mapoverlays[activepackage][activepackagetype].length > 0) {
			for(var o=0; o<mapoverlays[activepackage][activepackagetype].length; o++) {
				gmap.removeOverlay(mapoverlays[activepackage][activepackagetype][o]);
			}
		}
	}
}

function collapseRegion(obj) {
	ih = obj.innerHTML;
	if(ih.indexOf('hide') > -1) {
		toggleDisplay(obj.parentNode.nextSibling,false);
		obj.innerHTML = "show";
	} else {
		obj.innerHTML = "hide";
		toggleDisplay(obj.parentNode.nextSibling,true);
	}
}
