var menu=new Array();
var show=0;
var bigMap=null;
var httpData=null;
var showUrl=null;
var cPoint=null;
var markerArray=new Array();

//browser-detect
var agt=navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_ie=((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie5_5=(is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
var is_ie6=(is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1));

//language strings
if(lang=='it')
{
	var strMoreInfo="Pi&ugrave informazioni...";
	var strDirections="Indicazioni stradali";
}
else if(lang=='en')
{
	var strMoreInfo="More info...";
	var strDirections="Directions";
}


//-------------------- initialize() ---------------------------

function initialize()
{
bg_fnFixPng(document.getElementById('bigMapLayer'));
if (GBrowserIsCompatible())
{
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(45.805976, 8.490414), 10);
//map.setMapType(G_SATELLITE_MAP);
GEvent.addListener(map, "click", function() { showMap();});
}
}

//---------------------- onResize ----------------------------

function onResize()
{
if (!show) return;
/*
var screenW = 640, screenH = 480;
if (parseInt(navigator.appVersion)>3) {
 screenW = screen.width;
 screenH = screen.height;
}
else if (navigator.appName == "Netscape"
    && parseInt(navigator.appVersion)==3
    && navigator.javaEnabled()
   )
{
 var jToolkit = java.awt.Toolkit.getDefaultToolkit();
 var jScreenSize = jToolkit.getScreenSize();
 screenW = jScreenSize.width;
 screenH = jScreenSize.height;
}*/

var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }

myHeight-=2;

w=document.getElementsByTagName('body')[0].offsetWidth;
h=document.getElementsByTagName('body')[0].offsetHeight;
if(myHeight>h) h=myHeight;
if(990>w) w=990;
if(600>h) h=600;

var mapDiv=document.getElementById('bigMapLayer');
mapDiv.style.width=w+"px";
mapDiv.style.height=h+"px";
if(h>myHeight)
{
if(myHeight<400) myHeight=400;
document.getElementById('bigMap').style.height=(myHeight-50)+"px";
}
}


//---------------------- menuOver -----------------------------

function menuOver(el)
{
el.getElementsByTagName('a')[0].style.color="#FF3333";
el.getElementsByTagName('a')[0].style.textDecoration="underline";

var i=0;
var k=0;

if(menu.length)
for(i=0;i<menu.length;i++) if(menu[i][0]==el) break;
if(i==menu.length)
{
menu[i]=new Array();
menu[i][0]=el;
menu[i][1]=0;
menu[i][2]=0;
menu[i][3]=0;
}

menu[i][3]=1;
if(menu[i][1]) clearTimeout(menu[i][1]);
goUp(i);
}

//-------------------------- menuOut --------------------------

function menuOut(el)
{
el.getElementsByTagName('a')[0].style.color="#70A6D4";
el.getElementsByTagName('a')[0].style.textDecoration="none";

var i=0;

if(menu.length)
for(i=0;i<menu.length;i++) if(menu[i][0]==el) break;

if(menu[i][1]) menu[i][3]=-1;
else goDown(i);
}

//------------------------- goUp ------------------------------

function goUp(el)
{
if(menu[el][2]<-5)
{
menu[el][1]=0;
if(menu[el][3]==-1) goDown(el);
return;
}
menu[el][2]--;
menu[el][0].style.top=menu[el][2]+"px";
menu[el][1]=setTimeout("goUp('"+el+"');",20);
}

//------------------------- goDown ----------------------------

function goDown(el)
{
menu[el][3]=-1;
if(menu[el][2]>=0) {menu[el][1]=0; return;}
menu[el][2]++;
menu[el][0].style.top=menu[el][2]+"px";
menu[el][1]=setTimeout("goDown('"+el+"');",20);
}

//------------------------ showMap ----------------------------

function showMap()
{
show=1;
var mapDivLayer=document.getElementById('bigMapLayer');
var mapDiv=document.getElementById('bigMap');

onResize();

mapDivLayer.style.display="block";

if (GBrowserIsCompatible()&&!bigMap)
{
bigMap=new GMap2(mapDiv);
bigMap.setCenter(new GLatLng(45.805976, 8.490414), 13);
bigMap.setUI(bigMap.getDefaultUI());

if(window.ActiveXObject) httpData=new ActiveXObject("Microsoft.XMLHTTP");
else if(window.XMLHttpRequest) httpData=new XMLHttpRequest();

httpData.onreadystatechange=mapDataCallback;
httpData.open("GET","/"+lang+"/map/map.xml",true);
httpData.send(null);
}

}

//----------------------- mapDataCallback ---------------------

function mapDataCallback()
{
if(httpData.readyState==4)
if(httpData.status==200)
{
var xml=httpData.responseXML.documentElement;

var markers=xml.getElementsByTagName('point');

for(i=0;i<markers.length;i++)
{


var title="";
var address="";
var text="";
var url="";
var img="/img/trasp.gif";
var iconM="";
var lat=0;
var long=0;
var tipo=""

if(markers[i].getElementsByTagName('lat')[0].childNodes.length) lat=markers[i].getElementsByTagName('lat')[0].childNodes[0].nodeValue;
if(markers[i].getElementsByTagName('long')[0].childNodes.length) long=markers[i].getElementsByTagName('long')[0].childNodes[0].nodeValue;
if(markers[i].getElementsByTagName('url')[0].childNodes.length) url=markers[i].getElementsByTagName('url')[0].childNodes[0].nodeValue;
if(lat==0||long==0||url.slice(1,3)!=lang) continue;

var point=new GLatLng(lat,long);

if(markers[i].getElementsByTagName('title')[0].childNodes.length) title=markers[i].getElementsByTagName('title')[0].childNodes[0].nodeValue;
if(markers[i].getElementsByTagName('address')[0].childNodes.length) address=markers[i].getElementsByTagName('address')[0].childNodes[0].nodeValue;
if(markers[i].getElementsByTagName('text')[0].childNodes.length) text=markers[i].getElementsByTagName('text')[0].childNodes[0].nodeValue;

if(markers[i].getElementsByTagName('img')[0].childNodes.length) img=markers[i].getElementsByTagName('img')[0].childNodes[0].nodeValue;
if(markers[i].getElementsByTagName('icon')[0].childNodes.length) iconM=markers[i].getElementsByTagName('icon')[0].childNodes[0].nodeValue;

var marker=createMarker(point,title,address,text,url,img,iconM,lat,long)
bigMap.addOverlay(marker);

//carica il marker nell'array
tipo=url.slice(4);
tipo=tipo.slice(tipo.search('/')+1);
tipo=tipo.slice(0,tipo.search('/'));

if(!markerArray[tipo])
{
markerArray[tipo]=new Array();
}
markerArray[tipo][markerArray[tipo].length]=marker;


//visualizza un particolare itinerario se selezionato
if(showUrl==url)
{
var str='<div class="markerDiv"><a href="'+url+'"><img src="'+img+'" class="markerImg"></a>'+
'<p class="markerTitle">'+title+'</p><p class="markerAddress">'+address+'</p></div>'+
'<p class="markerText">'+text+'<br/><br/>';
if(url!="") str+='<a class="markerLink" href="'+url+'">pi&ugrave; informazioni...</a>';
str+='<a class="markerDir" target="_blank" href="http://www.google.com/maps?daddr=%40'+lat+'%2C'+long+'">indicazioni stradali</a></p>';

marker.openInfoWindowHtml(str);
bigMap.setCenter(cPoint, 13);
}

}



}
}

//------------------------ createMarker -----------------------

function createMarker(point,title,address,text,url,img,iconM,lat,long)
{
var icon=new GIcon();
icon.image=iconM;

icon.iconSize=new GSize(32, 32);
icon.shadowSize=new GSize(22, 20);
icon.iconAnchor=new GPoint(6, 20);
icon.infoWindowAnchor=new GPoint(10, 1);

markerOptions={icon:icon};
var marker =new GMarker(point, markerOptions);

GEvent.addListener(marker, "click", function()
{
marker.openInfoWindowHtml(
'<div class="markerDiv"><a href="'+url+'"><img src="'+img+'" class="markerImg"></a>'+
'<p class="markerTitle">'+title+'</p><p class="markerAddress">'+address+'</p></div>'+
'<p class="markerText">'+text+'<br/><br/>'+
'<a class="markerLink" href="'+url+'">'+strMoreInfo+'</a>'+
'<a class="markerDir" target="_blank" href="http://www.google.com/maps?daddr=%40'+lat+'%2C'+long+'">'+strDirections+'</a></p>'
);
}
);

return marker;
}


//--------------------- setMarkers ---------------------------

function setMarkers(tipo)
{
var i;

if(!markerArray[tipo]) return;
if(document.getElementById(tipo+"_mk").checked)
{
for(i=0;i<markerArray[tipo].length;i++)
bigMap.addOverlay(markerArray[tipo][i]);
}
else
{
for(i=0;i<markerArray[tipo].length;i++)
bigMap.removeOverlay(markerArray[tipo][i]);
}

}



//----------------------- hideMap -----------------------------

function hideMap()
{
document.getElementById('bigMapLayer').style.display='none';
show=0;
}


//---------------------- bg_fnFixPng --------------------------
function bg_fnFixPng(obj)
{
if(!(is_ie6||is_ie5_5)) return;
var mode = 'scale';
var bg	= obj.currentStyle.backgroundImage;
var src = bg.substring(5,bg.length-2);
if (obj.currentStyle.backgroundRepeat == 'no-repeat') {
mode = 'crop';
}
obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + mode + "')";
obj.style.backgroundImage = 'url('+"/img/trasp.gif"+')';
};
