var geocoder = null;
var lastSearchString = "";	
function centerPlace(place)
{
	place = place + "";
	lastSearchString = place;
	
	if (geocoder == null )
	{
		//PGeocoder.prototype.geocode=function(addr,callback){this.server=PEnvironment.geocoderUrl;var s=document.createElement("script");s.src=this.server+"/geocodejs1.0_test?a="+addr+"&f="+callback;var elements=document.getElementsByTagName("head");elements[0].appendChild(s);}
      	//PClientGeocoder.prototype.getLatLng=function(address,callback){PAsync.call(this.server+"/geocodejs1.0_test?ret=latlng&dt="+this.type+"&r="+this.location+"&a="+encodeURIComponent(address.trim())+"&key="+this.key,this,callback);}     
		
		geocoder = new PClientGeocoder("teleatlas");
		geocoder.server = "http://geocode.pushpin.com";
	}	
		
	
	// Find place and return it to Flex
	if (geocoder && place.replace(/^\s+|\s+$/g,"") != "") 
	{
		geocoder.getLatLng(
			place,
			function (places) {
				findAddressResultHandler( places );
			}
		);
	}
}

function findAddressResultHandler( point )
{
	if (!point)
	{
		geocoder.getPlace(
			lastSearchString,
			function (places) {
				findPlaceResultHandler( places );
			}
		);
	}
	else {
		var result = [];
		var _place = {};
		_place.lat = point.lat();
		_place.lon = point.lng();
		_place.name = lastSearchString;
		result.push( _place );
		getSwf().setPlacesResult( result );
	}
}

function findPlaceResultHandler(places) 
{
	getSwf().setPlacesResult( translate( places ) );
}

function getSwf()
{
	var swf = "main";
	var container;
	if (navigator.appName.indexOf("Microsoft") != -1)
    {
        container = window;
    }
    else
    {
        container = document;
    }
    return container[swf];
}

function getState(place) {
	var state = "";
	if (place.getState() && place.getType() != PPlaceType.CBSA && place.getType() != PPlaceType.STATE)
		state = ", " + place.getState();
	return state;
}

function translate( places )
{
	var result = [];
	if (places.length > 0)
	{
		for ( i = 0; i < places.length; i++ )
		{
			var place = places[i];
			var centroid = place.getCentroid();
			var _place = {};
			_place.lat = centroid.lat();
			_place.lon = centroid.lng();
			_place.name = places[i].getLabel() + getState(places[i]) + " (" + places[i].getType().getName() + ")";
			
			var _vertexArrays = [];
			var _vertices = [];
			var vertexArrays = place.getVertices()
			var vertices = [];
			for ( z = 0; z < vertexArrays.length; z ++) {
			
				vertices = vertexArrays[ z ];
				_vertices = [];
				
				for ( x = 0; x < vertices.length; x ++) 
				{	
					var vertex = vertices[x];
					var _vertex = { lat: vertex.lat() , lon : vertex.lng()  };
					_vertices.push( _vertex );
				}
				_vertexArrays.push( _vertices );
			}
			_place.vertexArrays = _vertexArrays;
			result.push( _place ); 
		}
	}
	return result;
}
	

function openURL( url )
{
	try
	{
		var popup = window.open( url,'_blank','');
		if ( popup == null )
			return false;
	}
	catch(err)
	{
		return false;
	}
	return true;
}

function loadURL( url )
{
	window.location = url;
}

function getWebServiceEndPoint()
{
	return "http://leapfrogservices.navtrak.net/LeapFrogAPI";
	//return "http://garmin.leapfrogservices.navtrak.net/LeapFrogAPI/";
	//return "http://staging.leapfrogservices.navtrak.net/LeapFrogAPI";
	//return "http://development.leapfrogservices.navtrak.net";
	//return "http://staging.garmin.leapfrogservices.navtrak.net/LeapFrogAPI";
	
}

function getMessagingServer() 
{
	return "blaze2.mynavtrak.net";
}

function getMessagingPort() 
{
	return "80";
}

function getMessagingHost() 
{
	return "navtrak/messagebroker";
}

function openChat()
{
	var e =window.open('http://www2.navtrak.net/sightmaxagentinterface/PreChatSurvey.aspx?siteID=4&queueID=3','chatWindow','width=490,height=404,resizable=0,scrollbars=no,menubar=no,status=no');

}

function printJob(content)
{
	
	
	document.getElementById("printFrame").contentWindow.focus()
	
	document.getElementById("printFrame").contentWindow.document.close();
	
	document.getElementById("printFrame").contentWindow.document.open();
	
	document.getElementById("printFrame").contentWindow.document.write(content);
	if(navigator.appName=="Microsoft Internet Explorer") //browser checking for print.
	{
		document.getElementById("printFrame").contentWindow.document.execCommand("Print");
	}
	else
	{
		document.getElementById("printFrame").contentWindow.print();
	}
	
	document.getElementById("printFrame").contentWindow.document.close();
	
}