// JavaScript Document
function checkval(obj) {
	if (obj.checked==true) {
		if (document.frmplaces.hideplaces.value.length>0) {
			document.frmplaces.hideplaces.value=document.frmplaces.hideplaces.value + ",";
		}
		document.frmplaces.hideplaces.value=document.frmplaces.hideplaces.value + obj.value;
		addPOI(obj.value);
	}
	else {
		str=document.frmplaces.hideplaces.value;
		srch=obj.value;
		pos=str.search(srch);
		if (pos>-1) {
			if (pos==0) {
				pos=str.search(/,/);
				if (pos>-1) {
					str=str.substr(pos+1);
				}
				else {
					str="";
				}
			}
			else {
				str1=str.substr(0,(pos-1));
				str=str.substr(pos+1);
				pos=str.search(/,/);
				if (pos>-1) {
					str=str.substr(pos+1);
					str=str1 + "," + str;
				}
				else {
					str=str1;
				}
				
			}
		}
		document.frmplaces.hideplaces.value=str;
		removePOI(obj.value);
	}
}

function removePOI(val) {
	if (val=="'station'") {
		if (batchstation.length>0) {
			for (i = 0; i < batchstation.length; i++) {
				map.removeOverlay(batchstation[i]); 
			}
		}
		batchstation = [];
	}
	if (val=="'metro'") {
		if (batchmetro.length>0) {
			for (i = 0; i < batchmetro.length; i++) {
				map.removeOverlay(batchmetro[i]); 
			}
		}
		batchmetro = [];
	}
	if (val=="'underground'") {
		if (batchunderground.length>0) {
			for (i = 0; i < batchunderground.length; i++) {
				map.removeOverlay(batchunderground[i]); 
			}
		}
		batchunderground = [];
	}
}

function addPOI(val) {
	if (map.getZoom()>13) {
		var bounds = map.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();
		var latMin = southWest.lat();
		var lngMin = southWest.lng();
		var latMax = northEast.lat();
		var lngMax = northEast.lng();
		bounds = rn(latMin)+","+rn(lngMin)+","+rn(latMax)+","+rn(lngMax);
		jQuery(document).ready(function() {
			jQuery.ajax({
				type: "GET",
				url: "listpoi.asp",
				data: "bounds=" + bounds + "&places=" + val,
				//data: "bounds=" + bounds + "&places=" + $('#hideplaces').val(),
				contentType: "application/json; charset=utf-8",
				dataType: "json",
				beforeSend: function(x){
					if(x && x.overrideMimeType) {
						x.overrideMimeType("application/j-son; charset=UTF-8");
					}
					progressBar = new ProgressbarControl(map, {width:150, loadstring: 'Loading....please wait'});
					progressBar.start();
				},
				error: function(xhr, ajaxOptions, thrownError){
					//loading('listings',0);
					//alert(xhr.responseText);
					progressBar.remove();
				},
				success: function(data){
					if (data.total>0) {
						if (val=="'station'") {
							customIcons = iconStation; 
						}
						if (val=="'metro'") {
							customIcons = iconMetro; 
						}
						if (val=="'underground'") {
							customIcons = iconUnderground; 
						}
	
						for (var i = 0; i < data.data.length; i++) {
							var markerclust = createMarkerpoi(data.data[i]);
							if (val=="'station'") {
								batchstation.push(markerclust);
							}
							if (val=="'metro'") {
								batchmetro.push(markerclust);
							}
							if (val=="'underground'") {
								batchunderground.push(markerclust);
							}
						}
		
		
						if (val=="'station'") {
							loadpoi("station");
						}
						if (val=="'metro'") {
							loadpoi("metro");
						}
						if (val=="'underground'") {
							loadpoi("underground");
						}
					}
					else {
						progressBar.remove();
					}
				}
			});
		});
	}
}

function createMarkerpoi(input) {
	longitude=input.longitude;
	latitude=input.latitude;
	placecity=input.city;
	if (input.places_type=="metro") {
		placename="Metro";
	}
	if (input.places_type=="station") {
		placename="Bicycle Station";
	}
	if (input.places_type=="underground") {
		placename="Underground";
	}

	var point = new GLatLng(latitude, longitude);
	tooltip = setToolPOI(placecity,placename);
	if (point) {
	//var marker = new LabeledMarker(point, {icon: customIcons, title: tooltip, labelText: markcount, labelOffset: new GSize(-16, -16)});
	var marker = new GMarker(point,{icon: customIcons, title: tooltip});
	return marker;
	}
}

function listplaces() {
	if (map.getZoom()>13) {
	val=$('#hideplaces').val();
	if (val.length>0) {
		if (val.search(/,/)>0) {
			val=val.split(/,/);
			for (var i=0;i<val.length;i++) {
				addPOI(val[i]);
			}
		}
		else {
			addPOI(val);
		}
	}
	}
}
	
function setToolPOI(name,place) {
	return place;
}

var poi;

function loadpoi(val) {
	if (val=="station") {
		progressBar.start(batchstation.length);
		maxNum = batchstation.length;
	}
	if (val=="metro") {
		progressBar.start(batchmetro.length);
		maxNum = batchmetro.length;
	}
	if (val=="underground") {
		progressBar.start(batchunderground.length);
		maxNum = batchunderground.length;
	}
	
	poi=val;
	setTimeout('addpoiMarkers()',5);
	num=0;
}

function addpoiMarkers() {
		 
	 progressBar.updateLoader(1);
	 //var marker = batch.pop();
	 if (poi=="station") {
		 if (batchstation[num] != undefined) {
			var markerpoi = batchstation[num];
	
			map.addOverlay(markerpoi);
		}
	}
	 if (poi=="metro") {
		 if (batchmetro[num] != undefined) {
			var markerpoi = batchmetro[num];
	
			map.addOverlay(markerpoi);
		}
	}
	 if (poi=="underground") {
		 if (batchunderground[num] != undefined) {
			var markerpoi = batchunderground[num];
			map.addOverlay(markerpoi);
		}
	}
	 num = num + 1;
	 if (num < maxNum) {
		setTimeout('addpoiMarkers()',5);
	 }
	 else {
		progressBar.remove();
	}
}

function goplaces() {
	document.form1.txtaddress.value=document.form1.hideaddress.value;
	updateMap('force');
}
function setMore(obj,i) {
	
	if(obj.checked) {
		if (document.form1.hidemore.value.length>0) {
			document.form1.hidemore.value=document.form1.hidemore.value+",";
		}
		document.form1.hidemore.value=document.form1.hidemore.value+obj.value;
		switchLayer(true, layers[i].obj);
	}
	else {
		val=document.form1.hidemore.value;
		pos=val.search(/,/);
		if (pos>-1) {
			pos=val.search(obj.value);
			if (pos==0) {
				pos=val.search(/,/);
				val=val.substr(pos+1);
			}
			else {
				pos=val.search(/,/);
				val=val.substr(0,pos);
			}
		}
		else {
			val="";
		}
		document.form1.hidemore.value=val;
		switchLayer(false, layers[i].obj);
		chosen.push(i);
	}
}

function switchLayer(checked, layer) {
	if(checked) {
		map.addOverlay(layer);
		chosen.length = 0;
	}
	else {
		map.removeOverlay(layer);
	}
}

function checkChecked() {
	var boxes = document.getElementsByName("checkMore");
	for(var i = 0; i < boxes.length; i++) {
		if(boxes[i].checked) {
			switchLayer(true, layers[i].obj);
		}
	}
}
