var core={

	var_dump:function(arr,level){
		var dumped_text = "";
		if(!level) level = 0;
		var level_padding = "";
		for(var j=0;j<level+1;j++) level_padding += "    ";
		if(typeof(arr) == 'object') 
		{
			for(var item in arr) 
			{
				var value = arr[item];
				if(typeof(value) == 'object') 
				{
					dumped_text += level_padding + "'" + item + "' ...\n";
					dumped_text += core.dump(value,level+1);
				} 
				else 
				{
					dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
				}
			}
		} 
		else 
		{ 
			dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
		}
		alert(dumped_text);
	},
	
	dump:function( value, level )
	{
		var string = "";
		for( var x = 0; x <= level; x++ )
		{
			string = string + " ";
		}
		return string + value;
	}
};
var Base64 = {
 
	// private property
	_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
 
	// public method for encoding
	encode : function (input) {
		var output = "";
		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
		var i = 0;
 
		input = Base64._utf8_encode(input);
 
		while (i < input.length) {
 
			chr1 = input.charCodeAt(i++);
			chr2 = input.charCodeAt(i++);
			chr3 = input.charCodeAt(i++);
 
			enc1 = chr1 >> 2;
			enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
			enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
			enc4 = chr3 & 63;
 
			if (isNaN(chr2)) {
				enc3 = enc4 = 64;
			} else if (isNaN(chr3)) {
				enc4 = 64;
			}
 
			output = output +
			this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
			this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
 
		}
 
		return output;
	}

};
var currentcount = 0;
function MyPlaces() {
  this.localResultsContainer = document.getElementById("localResultsContainer");
  this.localSearch = new GlocalSearch();
  this.localSearch.setRestriction(google.search.LocalSearch.RESTRICT_TYPE,google.search.LocalSearch.TYPE_KMLONLY_RESULTS);
  this.localSearch.setSearchCompleteCallback(this, MyPlaces.prototype.onSearchComplete);
  this.localSearch.setResultSetSize(google.search.Search.LARGE_RESULTSET);
  this.localSearch.setCenterPoint( myCurrentCountry );
  this.visibleItemCount = 0;
  this.currentItem = null;

  //core.var_dump(searchthing);
  currentcount = 0;
  this.localSearch.execute( searchthing );
};

MyPlaces.prototype.onSearchComplete = function() {
	var send = "";
	//core.var_dump(this.localSearch.results);
	for( var x = 0; x<this.localSearch.results.length; x++ )
	{
		send += 'lat_'+x+'='+this.localSearch.results[x].lat+"&";
		send += 'lng_'+x+'='+this.localSearch.results[x].lng+"&";
		send += 'title_'+x+'='+this.localSearch.results[x].titleNoFormatting+"&";
		send += 'region_'+x+'='+this.localSearch.results[x].region+"&";
		send += 'country_'+x+'='+this.localSearch.results[x].country+"&";
		var id = this.localSearch.results[x].url.split('=');
		send += 'id_'+x+'='+id[id.length-1]+"&";
		if( this.localSearch.results[x].phoneNumbers )
		{
			for( var y = 0; y<this.localSearch.results[x].phoneNumbers.length; y++ )
			{
				var type = this.localSearch.results[x].phoneNumbers[y].type;
				if( !type ) type = 'main';
				send += type+'_'+x+'='+this.localSearch.results[x].phoneNumbers[y].number+"&";
			}
		}
		if( this.localSearch.results[x].addressLines )
		{
			for( var y = 0; y<this.localSearch.results[x].addressLines.length; y++ )
			{
				send += 'adress_'+x+'_'+y+'='+this.localSearch.results[x].addressLines[y]+"&";
			}
		}
	}
	send+='searchthing='+searchthing+'&pagekey='+pagekey;
	
	var http = new XMLHttpRequest();
	http.open("POST", url, true);

	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", send.length);
	http.setRequestHeader("Connection", "close");

	http.onreadystatechange = function() {//Call a function when the state changes.
		if(http.readyState == 4 && http.status == 200) {
			//alert('fertig');
			document.getElementById('searchengine').innerHTML=http.responseText;
		}
	}
	http.send(send);

};

