google.load("maps", "2.x");
pageview = "profile";

function initialize()
{
	map = new google.maps.Map2(document.getElementById("map"));
	map.setCenter(new google.maps.LatLng(20,10), 1);
	map.setMapType(G_HYBRID_MAP);	
	if ( site == "hi5")
		gadgets.window.adjustHeight(300);
	else if(site== "fanbox")
        gadgets.window.adjustHeight(350);
            
	var req = opensocial.newDataRequest();
	req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER), "owner");
	//req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), "viewer");
	
	if ( site == "hi5")
	{
		var fields = ["country", "state", "city"];
		req.add(req.newFetchPersonAppDataRequest(opensocial.DataRequest.PersonId.OWNER, fields), "returnData");
	}
		
	req.send(processInitialize);
}

function processInitialize(data)
{
	if ( site == "hi5")
		user_data = data.get("returnData").getData();
	
	var owner = data.get("owner").getData();
	owner_id = owner.getId();
	gadgets.io.makeRequest(requestUrl+"checkuser.php", processCheckUser,
		{'METHOD' : gadgets.io.MethodType.POST,'POST_DATA':"site="+site+"&uid="+owner_id});		
}

function processCheckUser(response) 
{
	data = response.data;
	pos = data.indexOf(",");
	username = data.substring(0,pos);
	printMapPage();
}

function printMapPage()
{
	if ( username != '' )
	{
		//get markers from db
		url = requestUrl + "traveled2.php?get=1&site="+site+"&xnocache="+Math.floor(Math.random()*5)+"&username="+username;
		makeCachedRequest(url, processGetMarkers, null, refreshInterval); 
	}	
	else
	{
		if ( site == "hi5")
			getAppMarkers();
		else if ( site == "myspace" )
		{
			//get markers from db using uid
			url = requestUrl + "traveled2.php?get=1&site="+site+"&uid="+owner_id;
			makeCachedRequest(url, processGetMarkers, null, refreshInterval); 
		}		
	}	
	
	gadgets.window.adjustHeight();
}

function displayMarkers()
{
	var markers = getPageSavedMarker();
		
	for ( var i = 0; i < markers.length; i ++ )
		map.addOverlay(createMarker(markers[i].lat, markers[i].lon, markers[i].id));
}

function getAppMarkers()
{
	var gids = "";
	var owner_data = user_data[owner_id];

	//convert from serialized string to json object
	if(owner_data != null)
	{
		//get country gid
		jsonmarker = gadgets.util.unescapeString(owner_data["country"]);
		var markers = eval('(' + jsonmarker + ')');
					
		//check for markers on this pagetype
		if(markers != null)
		{
			//loop through all markers
			for (var i=0; i < markers.length; i++)
			{
				var marker = new Object();
				marker.lat =  markers[i].lat.toString();
				marker.lon =  markers[i].lon.toString();
				marker.id = markers[i].id.toString();	
				saved_country[saved_country.length] = marker;
			}
		}
		
		//get state gid
		jsonmarker = gadgets.util.unescapeString(owner_data["state"]);
		markers = eval('(' + jsonmarker + ')');
					
		//check for markers on this pagetype
		if(markers != null)
		{
			//loop through all markers
			for (var i=0; i < markers.length; i++)
			{
				var marker = new Object();
				marker.lat =  markers[i].lt.toString();
				marker.lon =  markers[i].ln.toString();
				marker.id = markers[i].id.toString();	
				saved_state[saved_state.length] = marker;
			}
		}
		
		//get city gid
		jsonmarker = gadgets.util.unescapeString(owner_data["city"]);
		markers = eval('(' + jsonmarker + ')');
					
		//check for markers on this pagetype
		if(markers != null)
		{
			//loop through all markers
			for (var i=0; i < markers.length; i++)
			{
				var marker = new Object();
				marker.lat =  markers[i].lt.toString();
				marker.lon =  markers[i].ln.toString();
				marker.id = markers[i].id.toString();	
				saved_city[saved_city.length] = marker;
			}
		}
		
		displayMarkers();
	}	
}

//changes page type
function changeType(pt)
{
	//change top bar
	var pelmnt = document.getElementById('topbar');
	var elChild = pelmnt.firstChild;
	while(elChild) 
	{
		if(elChild.nodeType==1) 
		{
			elChild.className="unsel";
		}
		elChild = elChild.nextSibling;
	}
	elmnt=document.getElementById(pt);
	elmnt.className="sel";
	
	pagetype = pt;
	//browsepage = 0;
	
	//redraw map for new page
	document.getElementById('map').style.display = "block";			
	map.clearOverlays();
			
	if (pt == "city")
		map.setCenter(new google.maps.LatLng(20,10), 1);
	else if (pt == "state")
		map.setCenter(new google.maps.LatLng(37,-95), 3);
	else if (pt == "country")
		map.setCenter(new google.maps.LatLng(20,10), 1);
	
	displayMarkers();		
}

function navigate()
{
	var surfaces = gadgets.views.getSupportedViews();
    var surfaceRef = surfaces["canvas"];
	gadgets.views.requestNavigateTo(surfaceRef, {});
}

gadgets.util.registerOnLoadHandler(initialize);