var Center = null;
function setDate(typ,s)
{
	for (i = 0; i < document.F.von.length; i++)
	{
		if(typ==='start')
		{
			if(s === document.F.von.options[i].value)
			{
				document.F.von.selectedIndex = i;
				if(document.F.bis.selectedIndex < document.F.von.selectedIndex)
				{
					document.F.bis.selectedIndex = i;
				}
			}
		}
		if(typ==='ende')
		{
			if(s === document.F.bis.options[i].value)
			{
				document.F.bis.selectedIndex = i;
				if(document.F.bis.selectedIndex < document.F.von.selectedIndex)
				{
					document.F.von.selectedIndex = i;
				}
			}
		}
	}
}
	
function changeDate(typ)
{
	if(typ=='start' & document.F.von.selectedIndex > document.F.bis.selectedIndex ) 
	{
		document.F.von.selectedIndex = document.F.von.selectedIndex ;
	}
	if(typ=='ende' & document.F.bis.selectedIndex < document.F.von.selectedIndex) 
	{
		document.F.von.selectedIndex = document.F.bis.selectedIndex;
	}
}

	
function ok(typ,w,h,pid)
{
	if(typ == 'start') 
	{
        window.open('http://www.avantel.de/acm/ibe/kalender.php?typ=start&pid='+pid,'Kalender','width='+w+',height='+h+'');
    }
    
    if(typ == 'ende') 
    {
        window.open('http://www.avantel.de/acm/ibe/kalender.php?pid='+pid+'&typ=ende','Kalender','width='+w+',height='+h+'');
    }
}

var map;
var mapstatus = 0;

function getMiles($km)
{
	return $km/1.61;
}

function centerMap(lat,lon)
{
	centerpoint = new GLatLng(lat,lon);
	map.setCenter(centerpoint,16);
	drawCircle();
}

function hideMap()
{
	var element = document.getElementById("map_"+hotelid);
	element.style.visibility = 'hidden';
	element.style.width = '0px';
	element.style.height = '0px';
	element.style.border = '';
	GUnload();
}
/*
Erzeugt eine Markierung an einer Position und Text 
point: Typ (GLatLon)
mit der passenden Flagge gesteuert üner Index
und über die Hotelid hid wird der HTML text der Textbox ausgegeben
*/

function createIconIndex(num,farbe)
{
	var icon = new GIcon();
	if(farbe=='r') icon.image = "http://www.avantel.de/acm/ibo/pix/php/marker.php?n="+num+"";
  if(farbe=='g')  icon.image = "http://www.avantel.de/map/icons/icong"+num+".png";
	icon.shadow = "http://www.avantel.de/acm/ibo/pix/map/shadow50.png";
	icon.iconSize = new GSize(20, 34);
	icon.shadowSize = new GSize(37, 34);
	icon.iconAnchor = new GPoint(9, 34);
	icon.infoWindowAnchor = new GPoint(9, 2);
	icon.infoShadowAnchor = new GPoint(18, 25);
	return icon;
}

function createMarker(hid,farbe)
{
  var hotel=Hotels[hid];
  hotel.CreateHtml();
  HotelPoint = hotel.Coordinaten;
  var icon = createIconIndex(hotel.Index,farbe)
  var marker = new GMarker(hotel.Coordinaten,icon);
	GEvent.addListener(marker, "click", function() { DrawHotelInfoTab(marker,hotel); });
  return marker;
}    

var distance; 

function showMap1(art,hotelid,distance)
{	
alert(art + hotelid + distance);
}
function showMap(art,hotelid,distance)
{	
  this.distance=distance;
  switchIcons(hotelid);
  loadMap(hotelid,art); 
}

function switchIcons(id)
{
  if(Hotels[id])
  {
  	hotel = Hotels[id];
	}
	else 
	hotel = Center;
  var bild=document.getElementById('gpic_'+id);
  var element = document.getElementById('map_'+id); 
  if(hotel.MapStatus==0)
  {
    element.style.visibility = 'visible';
    element.style.width = '498px';
    element.style.height = '360px';
    element.style.border = '1px solid gray';
    hotel.MapStatus=1;
    bild.src="http://www.avantel.de/acm/bilder/pix/icons/gmkreuz.gif"; 
  }
  else
  {
    element.style.visibility = 'hidden';
    element.style.width = '0px';
    element.style.height = '0px';
    element.style.border = '';
    hotel.MapStatus=0;
    bild.src="http://www.avantel.de/acm/bilder/pix/icons/gm.gif"; 
  }
}

function getZoomStufe(dist)
{
	var zoomstufe=0;
	var durchmesser=parseFloat(2 * dist);
	if(durchmesser < 2) zoomstufe=15;
	else if(durchmesser < 3) zoomstufe=14;
	else if(durchmesser < 6) zoomstufe=13;
	else if(durchmesser < 11) zoomstufe=12;
	else if(durchmesser < 21) zoomstufe=11;
	else if(durchmesser < 51) zoomstufe=10;
	else if(durchmesser < 101) zoomstufe=9;
	else zoomstufe=8;
	return zoomstufe;
}

function AddHotels(id)
{
	var marker;
	var radius;
	for (var i in Hotels)
	{
		var hotel=Hotels[i];
		var HotelPoint =  hotel.Coordinaten;   
		//var color ='r';
		//if(i==id)
    color = 'g'
		marker = createMarker(i,color); 
		map.addOverlay(marker);
    /*
		if(i==id) 
		{
			 DrawHotelInfoTab(marker,hotel); 
		}
    */
	}
}

function DrawHotelInfoTab(M,H)
{
	hotel = H;
	marker = M;
	var tabs = [];
	var div = 'pr' + String(hotel.HotelID);
	if(document.getElementById(div)) 
	{
		var pr = document.getElementById(div);
	}
	var h = "";
	h += "<div class=\"mapinfo\" style=\"margin:0 10px 0 0;\">"; 
	h += hotel.Html;
	if(pr) h += "<br /><div class=preise>"+ pr.innerHTML +"</div></div>";
	var tab1 = new GInfoWindowTab("Hotel",h);
	tabs.push(tab1);  
	var mapHTML = '<div id="tabMap" style="width:140px;height:140px;border:1px black solid;"></div>'; 
  var tab2 = new GInfoWindowTab("Karte",mapHTML); 
//	tabs.push(tab2);
	marker.openInfoWindowTabs(tabs); 
	var obj= document.getElementById("tabMap"); 
  var map2 = new GMap2(obj);
  map2.setCenter(HotelPoint,14); 
  var marker2 = new GMarker(HotelPoint,createIconIndex(hotel.Index,'g'));
  map2.addOverlay(marker2); 
}

function InitMap(name)
{
  var obj= document.getElementById(name); 
  map = new GMap2(obj);  
 	//map.addControl(new GLargeMapControl());
 	var mapTypeControl = new GMapTypeControl();
	var pos = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(0,0));
	map.addControl(new GLargeMapControl3D);
	
	map.addControl(mapTypeControl);//,pos);
	map.addControl(new GScaleControl()) ;
	pos = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(12,10)); 
	map.addControl(new GOverviewMapControl()) ;
  map.enableContinuousZoom();     
}

function createIcon()
{
  var icon = new GIcon();
	icon.image = "http://www.avantel.de/map/icon/blue_C.png";
	icon.shadow = "http://www.avantel.de/map/icon/mm_20_shadow.png";
	icon.iconSize = new GSize(20, 34);
	icon.shadowSize = new GSize(37, 34);
	icon.iconAnchor = new GPoint(10,34);
	icon.infoWindowAnchor = new GPoint(5, 1);
	return icon;
}

/*
zeichnet die Karten
*/
function loadMap(hotelid,typ)
{ alert(art);
   var zoomStufe = 12;
  InitMap("map_"+hotelid);
  if(Center!=null)
  {
    var CenterPoint = Center.Coordinaten;
    Center.CreateHtml();
  }
  if(typ == 'h')
  {
  	var myHotel = Hotels[hotelid];
  	var HotelPoint =  myHotel.Coordinaten;
  	/* zoomStufe =  getZoomStufe(this.distance);*/
  	map.setCenter(HotelPoint,zoomStufe); 
  	
	}
	else
	{
  	/* zoomStufe =  getZoomStufe(0); */
  	map.setCenter(CenterPoint,zoomStufe); 
	}
	
	AddHotels(hotelid); 
  
  var iconCenter = createIcon();
	var markerCenter = new GMarker(CenterPoint,iconCenter);
	map.addOverlay(markerCenter);
	
	GEvent.addListener(markerCenter, "click", function() {
	markerCenter.openInfoWindowHtml(Center.Html);});   
	
	var showCircle = true;
	if(showCircle)
	{
	  radius=distance/1.61;
    var color = "#0000ff";
	var width = 1;
	var opacity = 1.0;
    var circle= drawCircle(CenterPoint.y,CenterPoint.x,radius, color, width, opacity);
    if(circle) map.removeOverlay(circle);  
    map.addOverlay(circle);   
	}
	 if(typ == 'h')
  {
		var showLine = true;
		if(showLine)
		{
			color = "#ff0000";
			width = 1;
			opacity = 1.0;
			var line = drawLine(HotelPoint,CenterPoint, color, width, opacity) ;
			if(line) map.removeOverlay(line);
			map.addOverlay(line); 
		}
	}
}

  
function setCursor()
{
  document.getElementsByTagName('body')[0].style.cursor='pointer';
}

function resetCursor()
{
  document.getElementsByTagName('body')[0].style.cursor='default';
}
 
function drawLine(startPoint, endPoint, color, width, opacity) 
{ 
		var Cpoints = []; 
		Cpoints.push(startPoint);
		Cpoints.push(endPoint);  
		return new GPolyline(Cpoints, color, width, opacity); 
} 

function drawCircle(lat, lng, radius, color, width, opacity) 
{ 
		var d2r = Math.PI/180; 
		var r2d = 180/Math.PI; 
		var Clat = (radius/3963)*r2d; 
		var Clng = Clat/Math.cos(lat*d2r); 
		var Cpoints = []; 
		for (var i=0; i < 33; i++) { 
				    var theta = Math.PI * (i/16); 
				    Cy = lat + (Clat * Math.sin(theta)); 
				    Cx = lng + (Clng * Math.cos(theta)); 
				    var P = new GPoint(Cx,Cy); 
				    Cpoints.push(P); 
		} 
		return new GPolyline(Cpoints, color, width, opacity); 
}


function Projekt(ProjektID,UserID,Lang)
{
	this.ProjektID=ProjektID;
  this.UserID=UserID;
  this.Lang=Lang;
}

function Location()
{
  this.HotelID=0;
  this.Coordinaten=null;
  this.Index=0;
  this.Hotpage=1; 
  this.Name = "";
  this.Strasse = "";
  this.Ort = "";
  this.MapStatus = 0;
  this.Html = "<div class=\"mapinfo\"><b>"+this.Name+"<\/b><br\/>"+this.Strasse+"<br\/>"+this.Ort+"</div>";      
  this.Html+= "</div>";      

	this.CreateHtml = function()
  {
		this.Html = "<div class=\"mapinfo\"><b>"+this.Name+"<\/b><br\/>"+this.Strasse+"<br\/>"+this.Ort+"";    
		this.Html+= "<\/div>";  
	};
	this.Ausgabe = function()
  {
   alert(this.Html);
  };
  
	this.ClearString = function()
  {
  	 this.Name = this.Name.replace(/\//g, "\/");
  	 this.Strasse = this.Strasse.replace(/\//g, "\/");
  	 this.Ort = this.Ort.replace(/\//g, "\/");
	};
}

function Hotel()
{
		this.BookLink = 0;  
		
		this.CreateHtml = function()
  	{


  		var imsrc = "http://www.avantel.de/acm/bilder/pix/php/tn.php?hotelid="+this.HotelID+"&w=80&h=80";
			
			this.Html = "<table border=0 cellpadding=2 cellspacing=0>";
			this.Html += "<tr>";
 			this.Html += "<td valign='top'>";  
			this.Html += "<b>"+this.Name+"<\/b><br\/>"+this.Strasse+"<br\/>"+this.Ort+"";    
			if(this.BookLink  > 0)
			{
				this.Html+= "<br><a href=\"http://www.avantel.de/acm/ibo/ibo.php?";
				this.Html+="hotpage="+this.Hotpage+"";
				this.Html+="&pid="+P.ProjektID+""
				this.Html+="&uid="+P.UserID+"";
				this.Html+="&lang="+P.Lang+"";
				this.Html+="#H"+this.HotelID+"\">";
				if(P.Lang=='de') this.Html+="Hotel auswählen";
				if(P.Lang=='en') this.Html+="Choose hotel ";  
				this.Html+="</a>";
				this.Html+= "<br><a href=\"http://www.avantel.de/acm/ibo/ibo.php?";
				this.Html+="hotpage="+this.Hotpage+"";
				this.Html+="&pid="+P.ProjektID+""
				this.Html+="&uid="+P.UserID+"";
				this.Html+="&sicht=eins";
				this.Html+="&hot="+this.HotelID+"";
				this.Html+="&lang="+P.Lang+"";
				this.Html+="&hnr="+this.Index+"";
				this.Html+="#H"+this.HotelID+"\">";
				if(P.Lang=='de') this.Html+="Zur Hotelbuchung";    
				if(P.Lang=='en') this.Html+="Hotelbooking";
				this.Html+="</a>"; 
		 }
		 	this.Html += "</td>";
		 	this.Html += "<td>"
			this.Bild ="<img src=\""+imsrc+"\" border=0>";
			this.Html += this.Bild;
			this.Html += "</td>"; 
			this.Html += "</tr>"; 
			this.Html += "</table>"; 
 
		};
		
}

Hotel.prototype = new Location();








