var map, controls;
 
// zet popup = null omdat er dan gecontroleerd kan worden
// of de popup aanwezig is 

popup = null;



//zet default waarden voor klasse-indeling helpballoon

HelpBalloon.Options.prototype = Object.extend(HelpBalloon.Options.prototype, {
	icon: 'helpballoon/images/icon.gif',
	button: 'helpballoon/images/button.png',
	balloonPrefix: 'helpballoon//images/balloonm-',
	contentMargin: 25
	});

OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;


function init() {

			map = new OpenLayers.Map('map', {
				projection: "EPSG:900913",
				units: "meters",
				//numZoomLevels: 12,
				//minZoomLevel: 6,
				//maxZoomLevel: 18,
				center: new OpenLayers.LonLat(634083, 6795977),
				zoom: 8,
				maxExtent: new OpenLayers.Bounds(373804,6577250,804473,7086180),
				controls: [
					new OpenLayers.Control.PanZoomBar({zoomWorldIcon: true}),
					//new OpenLayers.Control.LayerSwitcher({'ascending':false}),
					new OpenLayers.Control.MousePosition(),
					new OpenLayers.Control.MouseDefaults(),
					new OpenLayers.Control.KeyboardDefaults(),
					new OpenLayers.Control.Scale()
				]                    
			}); 
    var ls = new OpenLayers.Control.LayerSwitcher({'ascending':false});
    map.addControl(ls);
    ls.maximizeControl();
/*
*/



 //Background layers from here

  // Define the OSM map layer
  // Note that we use a predefined layer that will be
  // kept up to date with URL changes
  // Here we define just one layer, but providing a choice
  // of several layers is also quite simple
  // OpenLayers.Layer.OSM.Osmarender
  // Other defined layers are OpenLayers.Layer.OSM.Mapnik, OpenLayers.Layer.OSM.Maplint and OpenLayers.Layer.OSM.CycleMap
  layerTilesAtHome = new OpenLayers.Layer.OSM.Mapnik("Open Street Map");
  map.addLayer(layerTilesAtHome);

  /* Options for the Google layer that is going to be our base layer.
     Possible types are: G_NORMAL_MAP, G_SATELLITE_MAP, G_HYBRID_MAP,G_DEFAULT_MAP_TYPES
     The option sphericalMercator must be set to true in order to be able to overlay
     layers over Google.
     The maxResolution matches the one set at the map.
  */
  
  var options_googleStr = {type:G_NORMAL_MAP, sphericalMercator:true, maxZoomLevel: 23, maxResolution: 2200};
  // Google layer constructor 
  var googleStreet = new OpenLayers.Layer.Google("Google Maps", options_googleStr);
  // Add the layer to the map
  map.addLayer(googleStreet);

  //add two other google layers      
  options_googleStr = {type:G_HYBRID_MAP, sphericalMercator:true, maxZoomLevel: 23, maxResolution: 2200};
  var google = new OpenLayers.Layer.Google( "Google Satelliet", options_googleStr );
  map.addLayer(google);        


/*  options_googleStr = {type:G_SATELLITE_MAP, sphericalMercator:true,maxZoomLevel: 23, maxResolution: 2200};
  google = new OpenLayers.Layer.Google( "Google Sat", options_googleStr );
  map.addLayer(google);        
*/

/*	var layerBasis = new OpenLayers.Layer.TMS("SpeedLayer",
				"http://93.186.180.157/",
				{type:'png', getURL: get_osm_url, border:1, transitionEffect: 'resize'}
	);
	map.addLayers([layerBasis]);
*/

  //Toevoegen van de Virtualearth layers 
//  velayer = new OpenLayers.Layer.VirtualEarth("Virtual Earth Wegen", 
//               { sphericalMercator:true, minZoomLevel: 4, maxZoomLevel: 23, 'type': VEMapStyle.Road } ); 
//  map.addLayer(velayer); 

//  velayer = new OpenLayers.Layer.VirtualEarth("Virtual Earth Satelliet", 
//               { sphericalMercator:true, minZoomLevel: 4, maxZoomLevel: 23, 'type': VEMapStyle.Aerial } ); 
//  map.addLayer(velayer); 

//  velayer = new OpenLayers.Layer.VirtualEarth("Virtual Earth hybrid", 
//               { sphericalMercator:true, minZoomLevel: 4, maxZoomLevel: 23, 'type': VEMapStyle.Hybrid } ); 
//  map.addLayer(velayer); 

  rugby_wms = new OpenLayers.Layer.WMS.Untiled("Rugbyvelden", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG.map", {layers: "Velden",transparent: true}, {ratio:1} );
 // rugby_wms.setIsBaseLayer(false);
 // rugby_wms.setVisibility(false); 
  map.addLayers([rugby_wms]);
  map.zoomTo(7);
OpenLayers.ProxyHost = "proxy.php?url=";

  
  //if (!map.getCenter()) map.zoomToMaxExtent();
//map.setCenter(new OpenLayers.LonLat(634083, 6795977),8); 
//   var centre = new OpenLayers.LonLat(6.06055, 52.09428);
 //   var zoom = 7;
 //   setMapCenter(centre, zoom);

	map.events.register('click', map, findLayerClick);

	//show helpballoon (is put here because of ie8 'error'
	hb5.show()
}

/*
 * An event occurred so now drill down the layers to get the info
 */
function findLayerClick(event) {

	var queryLayers = new Array();
	//loop door de layers en selecteer alleen de visible layers!
	i = 0;
	for (var lay in map.layers) {
		//if (map.layers[lay].visibility === true && map.layers[lay].params.SERVICE === "WMS" && map.layers[lay].isBaseLayer !== true) {
		if (map.layers[lay].visibility === true && map.layers[lay].isBaseLayer !== true) {

			//toevoegen aan de layer array
			queryLayers[i] = map.layers[lay].params.LAYERS;
			i++;
		}
	}
	if (queryLayers.toString() === "") {
		 OpenLayers.Util.getElement('nodeList').innerHTML = "U dient lagen aan te zetten om informatie op te kunnen vragen.";
	} else {
	
		//zet de volgende tekst onder in beeld
		OpenLayers.Util.getElement('nodeList').innerHTML = "Bezig met ophalen van gegevens...";
		//alert("Bezig met ophalen van gegevens...");
		    layerlist = "Velden";

		mouseLoc = map.getLonLatFromPixel(event.xy);

		var url = rugby_wms.getFullRequestString({
	                REQUEST: "GetFeatureInfo",
	                EXCEPTIONS: "application/vnd.ogc.se_xml",
			BBOX: map.getExtent().toBBOX(),
	                X: event.xy.x,
	                Y: event.xy.y,
			//INFO_FORMAT: 'text/plain',
	                INFO_FORMAT: 'text/html',
	                QUERY_LAYERS: layerlist,
	                FEATURE_COUNT: 1,
	                WIDTH: map.size.w,
	                HEIGHT: map.size.h});

		OpenLayers.loadURL(url, '', this, setHTML);

		OpenLayers.Event.stop(event);
	}
}

function setHTML(response) {
//	   if (response.responseText.indexOf('no results') == -1) {
	   if (response.responseText != '') {

//		alert(response.responseText);
		var popupinfo = response.responseText;
      	popup = new OpenLayers.Popup.Anchored("Rugbyclub",
                                        mouseLoc,
						    new OpenLayers.Size(275,275), //null,
                                        popupinfo,
						    null,
                                        true);
//		popup.minSize = new OpenLayers.Size(150,100);
//		popup.maxSize = new OpenLayers.Size(275,175);
//		popup.autoSize = true;
		popup.setBorder("2px solid");
        	popup.setBackgroundColor("#C2C2C2"); //("#ffffff");
//        	popup.setOpacity(0.7);

	  	//maak de tekst onderin beeld leeg
	  	OpenLayers.Util.getElement('nodeList').innerHTML = '';
        	map.addPopup(popup, true);
        	popup.events.register("click", map, popupDestroy);
    	}
	 else {
	  //maak de tekst onderin beeld leeg
	  OpenLayers.Util.getElement('nodeList').innerHTML = 'Niets gevonden...';
	  setTimeout("OpenLayers.Util.getElement('nodeList').innerHTML = ''",1000);

	}
}

/*
 * Destroy popup and stop event 
*/
 function popupDestroy(e) { 
 	popup.destroy();
	 popup = null; 
	OpenLayers.Util.safeStopPropagation(e);
 } 

HelpBalloon.Options.prototype = Object.extend(HelpBalloon.Options.prototype, {
				icon: 'helpballoon/images/icon.gif',
				button: 'helpballoon/images/button.png',
				balloonPrefix: 'helpballoon//images/balloonm-',
				contentMargin: 25
			});


function click_info(){

	  // Legend div Visible
	  if (parent.document.getElementById('legend').style.visibility == 'visible'){
  		  parent.document.getElementById('legend').style.visibility = 'hidden';
	  } else {
	  parent.document.getElementById('legend').style.height= getHeight() - 50;
	  parent.document.getElementById('legend').style.visibility = 'visible';
	  }

	
	}
	
function getHeight() {
	  var myHeight = 0;
	  if( typeof( parent.window.innerWidth ) == 'number' ) {
	    //Non-IE
	    myHeight = parent.window.innerHeight;
	  } else if( parent.document.documentElement && parent.document.documentElement.clientHeight ) {
	    //IE 6+ in 'standards compliant mode'
	    myHeight = parent.document.documentElement.clientHeight-0;
	  } else if( parent.document.body && parent.document.body.clientHeight ) {
	    //IE 4 compatible
	    myHeight = parent.document.body.clientHeight-0;
	  }
	  return myHeight;
	}

function get_osm_url (bounds) {
	var res = this.map.getResolution();
	var x = Math.round ((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
	var y = Math.round ((this.maxExtent.top - bounds.top) / (res * this.tileSize.h));
	var z = this.map.getZoom();
	var path = z + "/" + x + "/" + y + "." + this.type;
	var url = this.url;
	if (url instanceof Array) {
		url = this.selectUrl(path, url);
	}
	return url + path;
	}

function click_home(laagID){
	//remove present layer
	map.removeLayer(rugby_wms);
	//destroy popups with club-info
 	if (popup != null){
		 popup.destroy();
		 popup = null;
		} 
	// if visible, hide popup with division info (hb5)
	if (hb5.drawn){
		hb5.hide();
		}
	//set new layer based on laagID
	switch(laagID){
		case 0:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Alle Rugbyvelden", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/0.htm';
			var v_center = new OpenLayers.LonLat(634083, 6795977);
			var v_zoom = 7;
			break;
		case 1:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Ereklasse", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG1.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/1.htm';
			var v_center = new OpenLayers.LonLat(520000, 6820000);
			var v_zoom = 8;
			break;
		case 2:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Eerste Klasse", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG2.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/2.htm';
			var v_center = new OpenLayers.LonLat(540000, 6800000);
			var v_zoom = 8;
			break;
		case 31:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Tweede Klasse Noord", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG31.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/31.htm';
			var v_center = new OpenLayers.LonLat(590000, 6900000);
			var v_zoom = 8;
			break;
		case 32:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Tweede Klasse Zuid", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG32.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/32.htm';
			var v_center = new OpenLayers.LonLat(555000, 6770000);
			var v_zoom = 9;
			break;
		case 41:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Derde Klasse Noordoost", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG41.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/41.htm';
			var v_center = new OpenLayers.LonLat(670000, 6920000);
			var v_zoom = 8;
			break;
		case 42:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Derde Klasse Noordwest", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG42.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/42.htm';
			var v_center = new OpenLayers.LonLat(575000, 6880000);
			var v_zoom = 8;
			break;
		case 43:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Derde Klasse Zuidoost", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG43.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/43.htm';
			var v_center = new OpenLayers.LonLat(620000, 6775000);
			var v_zoom = 8;
			break;
		case 44:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Derde Klasse Zuidwest", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG44.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/44.htm';
			var v_center = new OpenLayers.LonLat(515000, 6770000);
			var v_zoom = 8;
			break;
		case 51:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Vierde Klasse Midden", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG51.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/51.htm';
			var v_center = new OpenLayers.LonLat(627000, 6794000);
			var v_zoom = 10;
			break;
		case 52:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Vierde Klasse Noordoost", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG52.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/52.htm';
			var v_center = new OpenLayers.LonLat(700000, 6920000);
			var v_zoom = 8;
			break;
		case 53:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Vierde Klasse Noordwest", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG53.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/53.htm';
			var v_center = new OpenLayers.LonLat(550000, 6870000);
			var v_zoom = 9;
			break;
		case 54:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Vierde Klasse Zuidoost", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG54.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/54.htm';
			var v_center = new OpenLayers.LonLat(600000, 6675000);
			var v_zoom = 8;
			break;
		case 55:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Vierde Klasse Zuidwest", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG55.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/55.htm';
			var v_center = new OpenLayers.LonLat(474000, 6750000);
			var v_zoom = 9;
			break;
		case 61:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Dames Ereklasse", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG61.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/61.htm';
			var v_center = new OpenLayers.LonLat(555000, 6800000);
			var v_zoom = 8;
			break;
		case 62:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Dames Kwalificatie Noordoost", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG62.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/62.htm';
			var v_center = new OpenLayers.LonLat(635000, 6800000);
			var v_zoom = 7;
			break;
		case 63:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Dames Kwalificatie Noordwest", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG63.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/63.htm';
			var v_center = new OpenLayers.LonLat(545000, 6800000);
			var v_zoom = 8;
			break;
		case 64:
			rugby_wms = new OpenLayers.Layer.WMS.Untiled("Dames Kwalificatie Zuid", "http://243228.vserver.de:8080/cgi-bin/mapserv?map=data/rugby/rugbyPG64.map", {layers: "Velden",transparent: true}, {ratio:1} );
			var v_html = 'scripts/64.htm';
			var v_center = new OpenLayers.LonLat(545000, 6800000);
			var v_zoom = 8;
			break;

		}
	//add new layer
	map.addLayers([rugby_wms]);

	//set center and zoom in
 	map.setCenter(v_center, v_zoom);

	//show division info
	hb5 = new HelpBalloon({
			dataURL: v_html,
			icon: $('panel')
		}); 
	hb5.show();
	}


