/**
 * @author Peter Hoffmann, Digiden GmbH
 */
var smallContr;
var typeContr;
var info;
var err;
var mcenter;
var cname;
var qsymbol;
var accomp;
var target;
var restring;
var cID;


function getLoc(response){	
		if(response.Placemark){
			var j=0;
			for (var i = 0; i < response.Placemark.length; i++) {
				place = response.Placemark[i];
				if(place.AddressDetails.Country.CountryNameCode =="DE"){
					var germplace=place;
					j++;
				}
			}
			if(j==1){
				target=new GLatLng(germplace.Point.coordinates[1],germplace.Point.coordinates[0]);
				if(info!=''){
					setInfoNotification(info);
				}
				var scope="zb";
				var par="";
				if(cname)par+="&cname="+cname;
				if(qsymbol)par+="&cgz="+qsymbol;
				if(accomp)par+="&clm="+accomp;
				getAjaxCall("lat="+germplace.Point.coordinates[1]+"&long="+germplace.Point.coordinates[0]+par+"&type=oview&func=getDistComp");
			}
			else if(j==0){
				setMapCenter(new GLatLng(51.000000, 10.500000), 6);
				var err={'message':"Die Ortsangabe befindet sich nicht in Deutschland."};
				setErrNotification(err);
			}
			else{
				setMapCenter(new GLatLng(51.000000, 10.500000), 6);
				var err={'message':"F&uuml;r Ihre Suchanfrage wurden mehrere Orte gefunden. Bitte schr&auml;nken Sie ihre Suche ein."};
				setErrNotification(err);
			}
		}
		else{
			setMapCenter(new GLatLng(51.000000, 10.500000), 6);
			var err={'message':"F&uuml;r Ihre Suchanfrage konnte leider kein Ergebnis gefunden werden."};
			setErrNotification(err);
		}
};

function getDistComp(latlng){

	var map=getMap();
	var center=latlng;
	var zoom=map.getZoom();

	document.getElementById("resultlist").innerHTML="";
	document.getElementById("resultlist").style.display="none";/*.innerHTML="";*/
	document.getElementById("pager").style.display="none";/*innerHTML="";*/
	
	setInfoNotification({"message":"Einen Moment bitte..."});
	target="";
	getAjaxCall("lat="+center.lat()+"&long="+center.lng()+"&type=oviewdrag&func=getDistComp");

};


function getDistCompR(point){

	var map=getMap();
	
	var center=map.fromContainerPixelToLatLng(point);
	
	var zoom=map.getZoom();

	document.getElementById("resultlist").innerHTML="";
	document.getElementById("resultlist").style.display="none";/*.innerHTML="";*/
	document.getElementById("pager").style.display="none";/*innerHTML="";*/
	
	setInfoNotification({"message":"Einen Moment bitte..."});
	
	getAjaxCall("lat="+center.lat()+"&long="+center.lng()+"&type=oviewdrag&func=getDistComp");
};



function getGeo(i){	
	var c="";
	if(results['data']['r'][i]&&results['data']['r'][i][0]['PLZ']){
			c+= replaceHTMLEntities(results['data']['r'][i][0]['Strasse']);
			c+=", "+results['data']['r'][i][0]['PLZ'];
			c+=" "+ replaceHTMLEntities(results['data']['r'][i][0]['Ort']);	
			/*if(results['data']['r'][i][0]['Strasse']!="")c+=", "+results['data']['r'][i][0]['Strasse'];*/
	
			/*alert(c);*/
			
			var cID=results['data']['r'][i][0]['ID'];
			i++;
			getGeoNewCode(c,cID,i);
			window.setTimeout("getGeo('"+i+"')", 800);
	}
	else{
		document.body.style.cursor = "default";
		var out=document.getElementById('outdiv');
		out.innerHTML+="Aktualisierung der Daten abgeschlossen.<br />";
	}
}

function getGeoNewCode(c,cid,ind){
	var myNewGeos = new NewGeos(cid,ind);
	var geonew= new GClientGeocoder();
	var cache=new GGeocodeCache();	
	geonew.setCache(cache);
	geonew.setBaseCountryCode("DE");	
	/*geonew.getLocations(c,myNewGeos.setLoc);*/
	
	geonew.getLatLng(c,myNewGeos.setLoc);
	
	delete myNewGeos;
};

function addToCompResult(c,cid){

};

function NewGeos(cid,ind){
	var cID=cid;
	var Ind=ind;
	var counter=0;
	
	this.setLoc=function(point){
		if(point){
			var lat=point.lat();
			var lng=point.lng();
			if(isNaN(cID))getAjaxCall("ckey="+cID+"&clat="+lat+"&clong="+lng+"&func=updateComp&type=glob");
			else getAjaxCall("cID="+cID+"&clat="+lat+"&clong="+lng+"&func=updateComp&type=glob");
		}
		else{
			if(isNaN(cID))getAjaxCall("ckey="+cID+"&cvisib=0&func=updateComp&type=glob");
			else getAjaxCall("cID="+cID+"&cvisib=0&func=updateComp&type=glob");
		}
		/*
		if(resp.Placemark){
			if(resp.Placemark.length>>1){
				var j=0;
				var loc=Array();;
				for(var i=0;i<resp.Placemark.length;i++){
					var place = resp.Placemark[i];
					if(place.AddressDetails.Country.CountryNameCode=="DE"){
						loc[j]=place;
						j++;
					}
				}
				if(loc.length==1){
					if(isNaN(cID))getAjaxCall("ckey="+cID+"&clat="+loc[0].Point.coordinates[1]+"&clong="+loc[0].Point.coordinates[0]+"&func=updateComp&type=glob");
					else getAjaxCall("cID="+cID+"&clat="+loc[0].Point.coordinates[1]+"&clong="+loc[0].Point.coordinates[0]+"&func=updateComp&type=glob");
				}
				else{	
					
					if(isNaN(cID))getAjaxCall("ckey="+cID+"&cvisib=0&func=updateComp&type=glob");
					else getAjaxCall("cID="+cID+"&cvisib=0&func=updateComp&type=glob");
			*/		
					/*for(var i=0;i<results['data']['r'].length;i++){
						if(results['data']['r'][i][0]['ID']==cID){
							var c;
							if(results['data']['r'][i][0]['PLZ']!="")c=results['data']['r'][i][0]['PLZ'];
							else c=results['data']['r'][i][0]['Ort'];

							getGeoNewCode(c,cID,Ind);
						}
					}*/
			/*	}
			}
			else{
				var place = resp.Placemark[0];

				if(isNaN(cID))getAjaxCall("ckey="+cID+"&clat="+place.Point.coordinates[1]+"&clong="+place.Point.coordinates[0]+"&func=updateComp&type=glob");
				else getAjaxCall("cID="+cID+"&clat="+place.Point.coordinates[1]+"&clong="+place.Point.coordinates[0]+"&func=updateComp&type=glob");
			}
		}
		else{
			for(var i=0;i<results['data']['r'].length;i++){
				if(results['data']['r'][i][0]['ID']==cID){
					
					if(isNaN(cID))getAjaxCall("ckey="+cID+"&cvisib=0&func=updateComp&type=glob");
					else getAjaxCall("cID="+cID+"&cvisib=0&func=updateComp&type=glob");
			*/		
					
					/*var c="";
					if(results['data']['r'][i][0]['PLZ']!="")c=results['data']['r'][i][0]['PLZ'];
					if(c!="")c+=" ";
					c+=results['data']['r'][i][0]['Ort'];

					getGeoNewCode(c,cID,Ind);*/
		/*		}
			}
		}*/
 	};	
}

/*GMap2.prototype.setErrNotification=function(result){*/
function setErrNotification(result){
	var infoDOM=document.getElementById("infos");
	infoDOM.style.display="block";
	infoDOM.style.backgroundColor="#E9E4D4";
	infoDOM.innerHTML="<span id=\"err\"><img src=\"html/img/warnung.gif\" border=\"0\" style=\"margin-right:5px;\"><b>Achtung: </b><br />"
												+ result.message + "<br /></span>";
};

/*GMap2.prototype.setInfoNotification=function(result){*/
function setInfoNotification(result){
	var infoDOM=document.getElementById("infos");
	infoDOM.style.display="block";
	infoDOM.style.backgroundColor="#E9E4D4";
	infoDOM.innerHTML="<span id=\"info\"><img src=\"html/img/info.gif\" border=\"0\" style=\"margin:0px 5px -2px 0px;\"><b>Info: </b><br />"
												+ result.message + "<br /></span>";
};

/*GMap2.prototype.setResult=function(result){	*/
function setResult(result){
	var reDOM=document.getElementById("resultlist");	
	var infoDom=document.getElementById('infos');
	if(infoDom.style.display=='block')reDOM.style.paddingTop="0px";
	else reDOM.style.paddingTop="10px";	
	if(reDOM.innerHTML!="")restring+="<div id=\"dotted\" style=\"width:240px;margin-bottom:5px;\"> </div>";
	restring+="<div id=\""+result.ID+"\"><b>"
				+ result.Name + "</b>"+
				"<div id=\"detailbtn\" class=\"button\" onClick=\"getDetail("+result.ID+");\"><img src=\"html/img/font/details.gif\" border=\"0\"></div>"
				+"<br />"+ result.Strasse
				+"<br />"+ result.PLZ + " "+ result.Ort+"</div>";
	if(result.Dif)restring+="<div id=\"dist\">ca. "+result.Dif+" km(Luftlinie)</div>";
	reDOM.innerHTML=restring;
};

/*GMap2.prototype.setStartPoint=function(latlng){*/
function setStartPoint(latlng){
	zwMAP.addOverlay(new GMarker(latlng));
};

/*GMap2.prototype.setAlphaMarker=function(latlng,result,e){*/
function setAlphaMarker(latlng,result,e){
	var baseIcon = new GIcon();
	baseIcon.image = "./html/img/timmy_alpha.gif";
	baseIcon.printImage = "./html/img/timmy_alpha.gif";
	baseIcon.mozPrintImage = "./html/img/timmy_alpha.gif";
	baseIcon.iconSize = new GSize(30, 36);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(14, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);		
	baseIcon.shadow = "./html/img/timmy_sh.png";
	baseIcon.shadowSize = new GSize(55, 40);
	var infoIcon = new GIcon(baseIcon);
	var marker = new GMarker(latlng, { icon:infoIcon, zIndexProcess: setBack});
	function setBack(marker,b) {return GOverlay.getZIndex(marker.getPoint().lat())-10000;}
	/*GEvent.addListener(marker, "click", function(){getDetail(result.ID);});	*/
	/*GEvent.addListener(marker, "mouseover", function(){highLight(result.ID); marker.openInfoWindowHtml("<b>" + result.Name + "</b><br /><br />"+result.Strasse+"<br />"+result.PLZ+" "+result.Ort);});	
	GEvent.addListener(marker, "mouseout", function(){lowLight(result.ID);marker.closeInfoWindow();});	*/
	zwMAP.addOverlay(marker);
};

/*GMap2.prototype.setMarker=function(latlng,result,e){*/
function setMarker(latlng,result,e){
	var baseIcon = new GIcon();
	baseIcon.image = "./html/img/timmy.gif";
	baseIcon.printImage = "./html/img/timmy.gif";
	baseIcon.mozPrintImage = "./html/img/timmy.gif";
	baseIcon.iconSize = new GSize(30, 36);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(14, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);		
	baseIcon.shadow = "./html/img/timmy_sh.png";
	baseIcon.shadowSize = new GSize(55, 40);
	var infoIcon = new GIcon(baseIcon);
	markerOptions = { icon:infoIcon };
	var marker = new GMarker(latlng, markerOptions);
	GEvent.addListener(marker, "click", function(){getDetail(result.ID);});
	GEvent.addListener(marker, "mouseover", function(){highLight(result.ID);marker.openInfoWindowHtml("<b>" + result.Name + "</b><br /><br />"+result.Strasse+"<br />"+result.PLZ+" "+result.Ort+"<br /><br /><a style=\"cursor:pointer;text-decoration:underline;\" onClick=\"getDetail("+result.ID+");\">mehr Details</a>");});	
	/*GEvent.addListener(marker, "mouseout", function(){lowLight(result.ID);});*//*marker.closeInfoWindow();*/	
	zwMAP.addOverlay(marker);
};


function highLight(id){
	if(results.length>=1){
		for (var i=0;i<results.length;i++){
			var re=document.getElementById(results[i].ID);
			if(re)re.style.backgroundColor="#E9E4D4";
		}
		var res=document.getElementById(id);
		if(res)res.style.backgroundColor="#EBC190";
	}
};

function lowLight(){
	if(results){
		if(results.length>=1){
			for (var i=0;i<results.length;i++){
				var res=document.getElementById(results[i].ID);
				if(res)res.style.backgroundColor="#E9E4D4";
			}
		}
	}
};

/*GMap2.prototype.getGeoCode=function(response){*/
function getGeoCode(response){
	var geo= new GClientGeocoder();
	var cache=new GGeocodeCache();
	if(response['i'])info=response['i'];
	else info="";
	if(response['e'])err=response['e'];
	else err="";
	if(response['n'])cname=response['n'];
	else cname="";
	if(response['g'])qsymbol=response['g'];
	else qsymbol="";
	if(response['l'])accomp=response['l'];
	else accomp="";
	geo.setCache(cache);
	geo.setBaseCountryCode("DE");
	geo.getLocations(response['c'],getLoc);
};

/*GMap2.prototype.loadGTools=function(){*/
function loadGTools(){
	smallContr = new GLargeMapControl();
    typeContr = new GMapTypeControl();
	zwMAP.addControl(smallContr);
	zwMAP.addControl(typeContr);
	/*zwMAP.addControl(new GOverviewMapControl());*/
};

/*GMap2.prototype.maxMap=function(id,width,height){	 */
function maxMap(id,width,height){
	var div = document.getElementById(id);
	var mapa = document.getElementById('map');
	mapa.style.width=width+'px';
	mapa.style.height=height-16+'px';
	div.style.width=width+'px';
	div.style.height=height+'px';
};

/*GMap2.prototype.minMap=function(id,width,height){*/
function minMap(id,width,height){
	var div = document.getElementById(id);
	var map = document.getElementById('map');
	closeDBox();
	map.style.width=width+'px';
	map.style.height=height-16+'px';
	div.style.width=width+'px';
	div.style.height=height+'px';
};

/*GMap2.prototype.setMapCenter=function(latlng,zoom){*/
function setMapCenter(latlng,zoom){
	zwMAP.setCenter(latlng, zoom);
};


