function zoomout() { $('zoomin').style.display='none'; $('zoomout').style.display='inline';}
function zoomin() { $('zoomin').style.display='inline'; $('zoomout').style.display='none';}
function log(message,opt_color){}
function logHtml(html){}
function logUrl(url){}
function createElement(tagName,opt_parent,opt_position,opt_size){
var element=document.createElement(tagName);
	if(opt_position){
	moveTo(element,opt_position);
	}
	else{element.style.position="relative";
	}
if(opt_size)setSize(element,opt_size);
if(opt_parent)opt_parent.appendChild(element);
return element;
}
function setSize(element,size){element.style.width=Math.round(size.width)+"px";element.style.height=Math.round(size.height)+"px";}
function moveTo(element,position){element.style.position="absolute";element.style.left=Math.round(position.x)+"px";element.style.top=Math.round(position.y)+"px";}
function disableSelection(element){element.onselectstart=returnFalse;element.unselectable="on";element.style.MozUserSelect="none";element.style.cursor="default";}
function setOpacity(element,opacity){
if(navigator.userAgent.indexOf("MSIE")>=0){element.style.filter="alpha(opacity="+Math.round(opacity*100)+")";}else{element.style.opacity=opacity;}}
function stopEvent(e){if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble=true;}}
function createPngImage(src,opt_parent,opt_position,opt_size){
if(navigator.userAgent.indexOf("MSIE")>=0){
var element=createElement("div",opt_parent,opt_position,opt_size);element.style.filter="progid:DXImageTransform.Microsoft."+"AlphaImageLoader(src='"+src+"')";return element;}else{var image=createElement("img",opt_parent,opt_position,opt_size);image.src=src;return image;}}
function Transition(milliseconds,opt_curve){this.milliseconds_=milliseconds;this.curve_=opt_curve||SineCurve;this.start_=new Date().getTime();}
Transition.prototype.run=function(stepTime,stepFn){if(!this.hasNext())return;stepFn.call(null,this.next());window.setTimeout(GEvent.callbackArgs(this,this.run,stepTime,stepFn),stepTime);}
Transition.prototype.hasNext=function(){if(this.done_)return this.oneLeft_;var now=new Date().getTime();if((now-this.start_)>this.milliseconds_){this.done_=true;this.oneLeft_=true;}
return true;}
Transition.prototype.next=function(){this.oneLeft_=false;
var now=new Date().getTime();var percentage=Math.min(1,(now-this.start_)/this.milliseconds_);
return this.curve_(percentage);}
function LinearCurve(percentage){return percentage;}
function SineCurve(percentage){return(1-Math.cos(percentage*Math.PI))/2;}

function SearchControl(opt_initialSearch){this.initialSearch_=opt_initialSearch;
this.geocoder_=new GClientGeocoder();}
SearchControl.prototype=new GControl();
SearchControl.prototype.initialize=function(map){
var container=createElement("div",map.getContainer());
var icon=createPngImage("spotlight.png",container,new GPoint(0,0),new GSize(25,25));
icon.style.zIndex=2;var contentContainer=createElement("div",container);
contentContainer.style.zIndex=1;contentContainer.style.marginLeft="12px";contentContainer.style.height="25px";
var searchContainer=createElement("div",contentContainer);
var form=createElement("form",contentContainer);
form.action=location.pathname;form.method="get";form.onsubmit=GEvent.callback(this,this.doSearch_);
var input=createElement("input",form);input.type="text";input.name="q";
input.style.width="300px";input.style.fontFace="Arial, sans-serif";
input.style.fontSize="13px";input.style.padding="1px";
input.style.paddingLeft="15px";input.style.marginTop="4px";input.style.border="2px solid #979797";
if(this.initialSearch_)input.value=this.initialSearch_;
this.input_=input;this.map_=map;
return container;}

SearchControl.prototype.getDefaultPosition=function(){
return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(10,25));}
SearchControl.prototype.selectable=function(){return true;}
SearchControl.prototype.focus=function(){this.input_.focus();}
SearchControl.prototype.doSearch_=function(){
address=this.input_.value;

if(!address)return false;
this.geocoder_.getLocations(address,GEvent.callback(this,function(res){if(res.Status.code!=200){this.showError_("Could not find \""+address+"\"");return;}
this.showPlacemark_(res.Placemark[0]);}));return false;}
SearchControl.prototype.findThoroughfare_=function(object){if(!object)return null;
if(typeof object!='object')return null;
for(key in object){if(key=="Thoroughfare")return object[key];
var thoroughfare=this.findThoroughfare_(object[key]);
if(thoroughfare)return thoroughfare;}
return null;}
SearchControl.prototype.showPlacemark_=function(place){var point=new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);
var map=this.map_;
this.map_.clearOverlays();
if(this.findThoroughfare_(place)){if(Math.abs(map.getZoom()-16)>3||!map.getBounds().contains(point)){map.setCenter(point,16);}
this.createMarker_(point,place);}
else{if(map.getZoom()==13){map.panTo(point);}
else{map.setCenter(point,13);}}}
SearchControl.prototype.createMarker_=function(point,place){
var gSmallIcon = new GIcon(G_DEFAULT_ICON);
    gSmallIcon.image = "http://labs.google.com/ridefinder/images/mm_20_yellow.png";
    gSmallIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
    gSmallIcon.iconSize = new GSize(12, 20);
    gSmallIcon.shadowSize = new GSize(22, 20);
    gSmallIcon.iconAnchor = new GPoint(6, 20);
    gSmallIcon.infoWindowAnchor = new GPoint(5, 1);

var addressMarker = new Array();

//var marker=new GMarker(point,G_DEFAULT_ICON);
var marker=new GMarker(point,gSmallIcon);
//var marker = new google.maps.Marker(point, gSmallIcon);
//       addressMarker.push(marker);
//         var index = addressMarker.length - 1;
//         this.map_.addOverlay(addressMarker[index] );



this.map_.addOverlay(marker);
var parts=place.address.split(', ');

var lines=[]
lines.push(parts.shift());var country=parts.pop();lines.push(parts.join(', '));
lines.push(country);
var html='<div class=\"title\">'+lines.join('</div><div>')+'</div>';

GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml(html);});
marker.openInfoWindowHtml(html);}

SearchControl.prototype.showError_=function(message){var div=createElement("div",this.map_.getContainer());
div.style.border="1px solid #979797";div.style.backgroundColor="white";
div.style.padding="1em";div.style.fontSize="medium";div.style.position="absolute";div.style.top="50%";
div.style.left="50%";div.style.width="24em";div.style.marginTop="-1em";
div.style.marginLeft="-13em";div.style.textAlign="center";div.style.zIndex=100000;
div.appendChild(document.createTextNode(message));

window.setTimeout(function(){var transition=new Transition(500);
transition.run(25,function(percentage){if(percentage==1){div.parentNode.removeChild(div);}else{setOpacity(div,1-percentage);}});},1000);}

function SelfContainedMap(container){this.container_=container;}

SelfContainedMap.prototype.run=function(){

var msnVeTileR = function(a, b){
			    var sTile = '000000';
			    sTile += (parseInt(a.y.toString(2) * 2) + parseInt(a.x.toString(2)));
			    sTile = sTile.substring(sTile.length - b, sTile.length);
			    s = 'http://r'
			    s += sTile.substring(sTile.length-1, sTile.length);
			    s += '.ortho.tiles.virtualearth.net/tiles/r'
			    s += sTile;
			    s += '.png?g=25';
			    return s;
			};
var map=new GMap2(this.container_);
/*
var tileMapnik = new GTileLayer(copycol,1,17); 
var layer0 = [tileMapnik]; 
var mapnikMap = new GMapType(layer0, G_SATELLITE_MAP.getProjection(), "Mapnik", G_SATELLITE_MAP); 
var mapnikMap = new GMapType(layer0, G_SATELLITE_MAP.getProjection(), "OSM", G_SATELLITE_MAP); 

var copyCollection = new GCopyrightCollection('Chart');
var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90, -180), new GLatLng(90, 180)), 0, "©2006 RunwayFinder.com");
copyCollection.addCopyright(copyright);

var tilelayers = [new GTileLayer(copyCollection, 3, 11)];
tilelayers[0].getTileUrl = CustomGetTileUrl;

function CustomGetTileUrl(a,b) {
	var z = 17 - b;
	var f = "/maps/?x="+a.x+"&y="+a.y+"&zoom="+z;
	return f;
}

*/

//var custommap = new GMapType(G_SATELLITE_MAP, G_SATELLITE_MAP.getProjection(), "Chart", G_SATELLITE_MAP);

var layer1 = new GTileLayer(new GCopyrightCollection("Daylight"), 5, 16); 
var mapLayers = [G_SATELLITE_MAP.getTileLayers()[0], layer1];
var night = new GMapType(mapLayers, G_SATELLITE_MAP.getProjection(), "NOC");

var mapLayers2 = [G_SATELLITE_MAP.getTileLayers()[0], layer1];
var clou = new GMapType(mapLayers2, G_SATELLITE_MAP.getProjection(), "Atmosfera");

//var myMapTypeLayers=[G_SATELLITE_MAP.getTileLayers()[0],layer1];
//var myCustomMapType = new GMapType(myMapTypeLayers, G_NORMAL_MAP.getProjection(), "MassGIS Data", G_SATELLITE_MAP);

var msnLayerR = new GTileLayer(new GCopyrightCollection(''),2,16);
			msnLayerR.getTileUrl = msnVeTileR;
                        //msnLayerR.title = "Mapa2";
			msnLayerR.getCopyright = function(a,b) {return 'Microsoft Virtual Earth';}
			var msnMapR = new GMapType([msnLayerR], G_SATELLITE_MAP.getProjection(), 'Mapa2', {maxResolution:16,minResolution:2,errorMessage:"No Data Available"});		



map.addControl(new GLargeMapControl(),new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(10,60)));
map.addMapType(G_PHYSICAL_MAP);

map.addMapType(night);
map.addMapType(clou);

var daylight = new daylightLayer();
var cloudsmap = new cloudLayer();

//map.addMapType(myCustomMapType);
daylight.addToMap(map);
cloudsmap.addToMap(map);
map.addMapType(BlueMarble);
map.addMapType(msnMapR);

//map.addControl(new PanoMapTypeControl());


var MapTypes = map.getMapTypes();  
MapTypes[0].getName= function() { return "Mapa";}   
MapTypes[0].getAlt=function() { return "Pokaż mapę";}   
MapTypes[1].getName = function() { return "Satelitarna";}   
MapTypes[1].getAlt=function() { return "Pokaż zdjęcia satelitarne";}  
MapTypes[2].getName = function() { return "Hybrydowa";} 
MapTypes[2].getAlt = function() { return "Pokaż zdjęcia satelitarne z warstwą ulic";} 
MapTypes[3].getName = function() { return "Fizyczna";} 
MapTypes[3].getAlt=function() { return "Pokaż mapę fizyczną";}  
MapTypes[4].getAlt=function() { return "Pokaż zdjęcia nocą";}  
MapTypes[5].getAlt=function() { return "Pokaż zdjęcia atmosfery";}  
MapTypes[7].getAlt=function() { return "Pokaż zdjęcia NASA";}  
MapTypes[7].getAlt=function() { return "Pokaż mapę administracyjną";}  



//map.addControl(new GV_MapTypeControl()); // add custom map type switcher
//map.addControl(new ExtMapTypeControl({showTraffic: true, showTrafficKey: true}));
//map.addControl(new GMapTypeControl());
//map.addControl(gv_maptypecontrol = new GV_MapTypeControl()); // add custom map type switcher

//map.addControl(new GMapTypeControl(),new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(38,38)));

var otherOpts = { 
          buttonStartingStyle: {background: '#FFF', paddingTop: '4px', paddingLeft: '4px', border:'1px solid black'},
          buttonHTML: '<img title="Przybliż" src="../js/dragzoom/zoomin.gif">',
          buttonStyle: {width:'25px', height:'23px'},
          buttonZoomingHTML: 'Zaznacz obszar na mapie (kliknij tutaj, aby anulować)',
          buttonZoomingStyle: {background:'yellow',width:'75px', height:'100%'},
          backButtonHTML: '<img title="Oddal" src="../js/dragzoom/zoomout.gif">',  
          backButtonStyle: {display:'none',marginTop:'5px',width:'25px', height:'23px'},
          backButtonEnabled: true, 
          overlayRemoveTime: 1500} 

        map.addControl(new DragZoomControl({}, otherOpts, {}), new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(60,305)));




//map.addControl(new DragZoomControl(),new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(10,320)));
map.enableDoubleClickZoom();
map.enableContinuousZoom();
map.enableScrollWheelZoom();
new GKeyboardHandler(map);
//map.addControl(new PanoMapTypeControl());
//address="Warszawa";
//var placesearch = '';
var searchControl=new SearchControl();

//searchControl.input_.value="Szukaj miejsca...";
//if(place == 'Szukaj miejsca...'){
//place = placesearch;}
//$('searching').style.visibility = 'visible';

map.addControl(searchControl);
searchControl.focus();
map.setCenter(new GLatLng(52.227799,19.097919),6);
map.addControl(new GScaleControl());

map.addControl(new GMapTypeControl());
map.addControl(new PanoMapTypeControl()); 


/*GEvent.addListener(map, 'moveend', function(){document.getElementById("zoom").value = map.getZoom();});
document.getElementById("zoom").value = map.getZoom();*/
var ovSize=new GSize(200, 150)
var ovMap=new GOverviewMapControl();
map.addControl(ovMap);

searchControl.input_.value=geoip_city();
map.panTo(new GLatLng(geoip_latitude(),geoip_longitude()));

document.oPrintEmailLinkControl = new PrintEmailLinkControl(map);
map.addControl(document.oPrintEmailLinkControl);

/*var mini=ovMap.getOverviewMap();
GEvent.addListener(mini,"load",function()
{
mini.setMapType(G_HYBRID_MAP);
});*/

}


//map.setCenter(new GLatLng(52.227799,21.007919),7);}

