// JavaScript Document

// AJAX Object Loader
function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}

function stateChanged() 
{ 
	if (xmlHttp.readyState==3)
	{ 
		document.getElementById("ajaxField").innerHTML='<img src="../images/loading.gif" alt="Loading" />';
	}
	
	if (xmlHttp.readyState==4)
	{ 
		document.getElementById("ajaxField").innerHTML=xmlHttp.responseText;
	}
}
// END AJAX Object Loader

//PADI eLearning Launcher
function PADIeLearning() {
accessWin = window.open('https://www.padi.com/padi/elearning/default.aspx?irra=3520','','scrollbars=yes,top='+(screen.height/8)+',left='+(screen.width/8)+',width=1000,height=700,resizable=yes');
window.accessWin.focus();
}
// END PADI eLearning Launcher

//XML GMAPS

// global arrays to hold copies of the markers used by the side_bar
var gmarkers = [];

// global "map" variable
var map;

// This function picks up the click and opens the corresponding info window
function myclick(i) {
  GEvent.trigger(gmarkers[i], "click");
}


function gmapInit(xmlFile, showSide, zoom) {
	if (GBrowserIsCompatible()) {
      // this variable will collect the html which will eventualkly be placed in the side_bar
      var side_bar_html = "";
    
      var i = 0;

			// create icon
	  	var icon = new GIcon();
			icon.image = "../images/marker.png";
			icon.iconSize = new GSize(20,20);
			icon.shadowSize = new GSize(10,8);
			icon.iconAnchor = new GPoint(6,8);
			icon.infoShadowAnchor = new GPoint(0,0);
			icon.infoWindowAnchor = new GPoint(8,1);

      // A function to create the marker and set up the event window
      function createMarker(point,name,html) {
        var marker = new GMarker(point, icon);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html,{maxWidth:500});
        });
        // Switch icon on marker mouseover and mouseout
        GEvent.addListener(marker, "mouseover", function() {
          marker.setImage("../images/marker2.png");
        });
        GEvent.addListener(marker, "mouseout", function() {
          marker.setImage("../images/marker.png");
        });

        // save the info we need to use later for the side_bar
        gmarkers[i] = marker;
        // add a line to the side_bar html
        side_bar_html += '<a href="javascript:myclick(' + i + ')" onmouseover="gmarkers['+i+'].setImage(\'../images/marker2.png\')" onmouseout="gmarkers['+i+'].setImage(\'../images/marker.png\')">' + name + '</a><br>';

		i++;
        return marker;
      }

      // create the map
      map = new GMap2(document.getElementById("map_canvas"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      map.setCenter(new GLatLng(0,0),0);
	  map.setMapType(G_HYBRID_MAP);

      // ===== Start with an empty GLatLngBounds object =====     
      var bounds = new GLatLngBounds();

      // Read the data from example.xml
      var request = GXmlHttp.create();
      request.open("GET", xmlFile, true);
      request.onreadystatechange = function() {
        if (request.readyState == 4) {
          var xmlDoc = GXml.parse(request.responseText);
          // obtain the array of markers and loop through it
          var markers = xmlDoc.documentElement.getElementsByTagName("marker");
          
          for (var i = 0; i < markers.length; i++) {
            // obtain the attribues of each marker
            var lat = parseFloat(markers[i].getAttribute("lat"));
            var lng = parseFloat(markers[i].getAttribute("lng"));
            var point = new GLatLng(lat,lng);
            var html = markers[i].getAttribute("html");
            var label = markers[i].getAttribute("label");
            // create the marker
            var marker = createMarker(point,label,html);
            map.addOverlay(marker);
			// ==== Each time a point is found, extent the bounds ato include it =====
            bounds.extend(point);
          }

			// put the assembled side_bar_html contents into the side_bar div
			if(showSide == 1)
			{
          		document.getElementById("side_bar").innerHTML = side_bar_html;
			}
          
          // ===== determine the zoom level from the bounds =====
          if(zoom)
		  {
		  	map.setZoom((map.getBoundsZoomLevel(bounds) + zoom));
		  }
		  else
		  {
			  map.setZoom(map.getBoundsZoomLevel(bounds));
		  }

          // ===== determine the centre from the bounds ======
          map.setCenter(bounds.getCenter());
        }
      }
      request.send(null);
    }

    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
}


function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
		window.onload = func;
	} else {
		window.onload = function(){oldonload(); func();}
	}
}

//END XML GMAPS

//Photo Popup
function CaricaFoto(img){
  foto1= new Image();
  foto1.src=(img);
  Controlla(img);
}
function Controlla(img){
  if((foto1.width!=0)&&(foto1.height!=0)){
    viewFoto(img);
  }
  else{
    funzione="Controlla('"+img+"')";
    intervallo=setTimeout(funzione,20);
  }
}
function viewFoto(img){
  largh=foto1.width+20;
  altez=foto1.height+20;
  stringa="width="+largh+",height="+altez;
  finestra=window.open("view.php?img="+img,"",stringa);
}
//END Photo Popup

//Popup handler
function openpopup(URL,width,height){
	day = new Date();
	id = day.getTime();
	//var winpops=window.open(popurl,"","width=700,height=500,status,scrollbars,menubar,resizable")
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=" + width + ",height=" + height + "');");
}
//END popup handler

// Sliding DIVS
var timerlen = 5;
var slideAniLen = 250;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display != "none")
                return; // cannot slide down something that is already visible

        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
}

function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
}

function startslide(objname){
        obj[objname] = document.getElementById(objname);

        endHeight[objname] = parseInt(obj[objname].style.height);
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;

                obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}

function toggleSlide(objname){
  if(document.getElementById(objname).style.display == "none"){
    // div is hidden, so let's slide down
    slidedown(objname);
  }else{
    // div is not hidden, so slide up
    slideup(objname);
  }
}
// End Sliding DIVS

function showDiv(divNo){
		for(i=0;i<7;i++)
		{
			objname = "div" + i;
			document.getElementById(objname).style.display = "none";
		}
		
		objname = "div" + divNo;
		document.getElementById(objname).style.display = "block";
}
