
var sv=false;
var svd=false;
var myPano;   
var panoClient;
var currentLatLng;
var currentYaw = 0;  
var fovMarker; 
var fovIcon = new GIcon(G_DEFAULT_ICON);
var iconSize = 150; 

var svd;
function turnsvon() {
	if (!svd) {
	   map.removeOverlay(svd);	
	} else {
		map.removeOverlay(svd);
	}
	svd = new GStreetviewOverlay();
	map.addOverlay(svd);
		
	GEvent.addListener(map,"dblclick", function(overlay,latlng) {
		$('streetv').style.display='';
		newfow(latlng);
	});
	


}

function newfow(latlng) {
	if (sv==true ){
		map.removeOverlay(fovMarker);
		myPano.remove();
		$('streetcamera').innerHTML='';
	}
	$('streetcamera').innerHTML='';
	$('streetcamera').style.display='';
	currentLatLng = latlng;
	panoClient = new GStreetviewClient(); 
	myPano = new GStreetviewPanorama(document.getElementById("streetcamera"));
	myPano.setLocationAndPOV(currentLatLng, {yaw:currentYaw, pitch:0});
	fovIcon.image = "/m/fov/?yaw=180";
	fovIcon.iconSize = new GSize(iconSize, iconSize);
	fovIcon.iconAnchor = new GPoint(iconSize/2, iconSize/2); //anchor in the middle
	fovIcon.shadow = null;
	fovMarker = new GMarker(currentLatLng, {icon: fovIcon, clickable: false})		
	GEvent.addListener(myPano, "initialized", handleInitialized); 
	GEvent.addListener(myPano, "yawchanged", handleYawChange);
	
	
	
	
	sv=true;
	
}

function handleInitialized(location) {
	currentLatLng = location.latlng;	
	placeFovMarker();			 
	return;	
}
function handleYawChange(yaw){
	currentYaw = Math.round(yaw);
	placeFovMarker();
	return;
}
function placeFovMarker(){
	map.removeOverlay(fovMarker);
	var point=fovMarker.getPoint();
	map.panTo(point);
	
	
	fovIcon.image = "/m/fov/?yaw="+currentYaw+"&rand="+Math.random();
	fovMarker = new GMarker(currentLatLng, {icon: fovIcon, clickable: false});
	map.addOverlay(fovMarker);
	return;
}

 
function turnsvoff() {
	map.removeOverlay(svd);
	sv=false;
	$('streetv').style.display='none';
	$('streetcamera').style.display='none';
	
	map.removeOverlay(fovMarker);		
	
}
