var appli;
var map;

var title = "<h1>Auvergne &agrave; la carte (beta)<br/><span>Visionneuse cartographique du CRAIG</span></h1>";

var drawlayer = 1;
var currentstyle = {
	fillColor: 'FF9900',
	fillOpacity: 60,
	strokeColor: '333399',
	strokeOpacity: 0,
	strokeWidth: 1,
	textColor: '3366FF',
	textSize: '12pt'
};

var wms_icon_url = "http://wms.craig.fr/ign";

var cache_urls = ["http://cache-1.craig.fr/",
			"http://cache-2.craig.fr/",
			"http://cache-3.craig.fr/",
			"http://cache-4.craig.fr/"];

/* HAX! */
var mkqtip = function(type, w, layer) {
	return new Ext.QuickTip({
/* XXX breaks other tips width: w, */
		title: 'L&eacute;gende',
		text: '<div style="background-image:none ; background-color: #ffffff"><img src="http://geoservices.brgm.fr/'+type+'?version=1.1.1&service=WMS&request=GetLegendGraphic&format=image/png&layer='+layer+'"/></div>'
	})
}

var treemodel = [{
		text: "Photo A&eacute;rienne",
		expanded: true,
		children: [{
			text: "D&eacute;partements 30cm 2009",
			checked: true,
			layerName: "ortho"
		},{
			text: "Agglos Allier 15cm 2009",
			checked: false,
			layerName: "ortho-agglos"
		},{
			text: "Infrarouge Couleur 2009",
			checked: false,
			layerName: "irc"
		},{
			text: "BD Ortho IGN",
			expanded: false,
			children: [{
				text: "Allier 2002",
				checked: false,
				layerName: "bdortho:allier_2002"
			},{
				text: "Cantal 2000",
				checked: false,
				layerName: "bdortho:cantal_2000"
			},{
				text: "Cantal 2005",
				checked: false,
				layerName: "bdortho:cantal_2005"
			},{
				text: "Haute-Loire 2000",
				checked: false,
				layerName: "bdortho:haute_loire_2000"
			},{
				text: "Haute-Loire 2005",
				checked: false,
				layerName: "bdortho:haute_loire_2005"
			},{
				text: "Puy de D&ocirc;me 1999",
				checked: false,
				layerName: "bdortho:puy_de_dome_1999"
			},{
				text: "Puy de D&ocirc;me 2005",
				checked: false,
				layerName: "bdortho:puy_de_dome_2005"
			}]
		}]
	},{
		text: "Scan IGN 2009",
		checked: false,
		minScale: 5000,
		layerName: "scan"
	},{
		text: "Raster G&eacute;osignal",
		checked: false,
		layerName: "geosignal"
	},{
		text: "Mod&egrave;le num&eacute;rique de terrain",
		checked: false,
		expanded: true,
		children: [{
			text: "MNT Ombrage D&eacute;partements 10m",
			checked: false,
			layerName: "mnt_ombrage"
		},{
			text: "MNT Couleur D&eacute;partements 10m",
			checked: false,
			layerName: "mnt_couleur"
		},{
			text: "Courbes de niveau &agrave; 10m",
			checked: false,
			maxScale: 50000,
			layerName: "courbes_niveau"
		}]
	},{
		text: "WMS BRGM",
		checked: false,
		expanded: false,
		children: [{
			text: "Geologie",
			checked: false,
			expanded: false,
			children: [{
				text: "Carte g&eacute;ologique 1/1000000",
				checked: false,
				minScale: 250000,
				layerName: "brgm_geologie:SCAN_F_GEOL1M"
				},{
				text: "Carte g&eacute;ologique papier 1/50000",
				checked: false,
				minScale: 10000,
				maxScale: 100000,
				layerName: "brgm_geologie:SCAN_D_GEOL50"
				},{
				text: "Carte lithologique 1/1000000",
				checked: false,
				minScale: 25000,
				layerName: "brgm_geologie:LITHO_1M_SIMPLIFIEE",
				qtipCfg: mkqtip("geologie", 235, "LITHO_1M_SIMPLIFIEE")
				},{
				text: "Banque du sous-sol",
				checked: false,
				layerName: "brgm_geologie:BSS",
				qtipCfg: mkqtip("geologie", 506, "BSS_TOTAL_SANS_LABEL")
				},{
				text: "Forages d'eau",
				checked: false,
				minScale: 2500,
				layerName: "brgm_geologie:BSS_ES",
				qtipCfg: mkqtip("geologie", 207, "BSS_ES_POINT")
				},{
				text: "Forages p&eacute;troliers",
				checked: false,
				minScale: 2500,
				layerName: "brgm_geologie:BEPH_FORAGE",
				qtipCfg: mkqtip("geologie", 230, "BEPH_FORAGE")
			}]
		},{
			text: "Mat&eacute;riaux",
			checked: false,
			expanded: false,
			children: [{
				text: "Exploitations actives",
				checked: false,
				layerName: "brgm_materiaux:EXPLOIT_ACTIVE",
				qtipCfg: mkqtip("odmgm", 166, "EXPLOIT_ACTIVE_P")
			},{
				text: "Exploitations ferm&eacute;es",
				checked: false,
				layerName: "brgm_materiaux:EXPLOIT_FERMEE",
				qtipCfg: mkqtip("odmgm", 166, "EXPLOIT_FERMEE_P")
			}]
		},{
			text: "Risques",
			checked: false,
			expanded: false,
			children: [{
				text: "Al&eacute;a retrait-gonflement des argiles",
				checked: false,
				minScale: 25000,
				layerName: "brgm_risques:ALEARG",
				qtipCfg: mkqtip("risques", 144, "ALEARG_REALISE")
			},{
				text: "Cavit&eacute;s souterraines abandonn&eacute;ees d'origine non mini&egrave;re",
				minScale: 2500,
				checked: false,
				layerName: "brgm_risques:CAVITE_LOCALISEE",
				qtipCfg: mkqtip("risques", 179, "CAVITE_LOCALISEE")
			},{
				text: "Cavit&eacute;s souterraines abandonn&eacute;ees d'origine non mini&egrave;re non localis&eacute;es",
				minScale: 2500,
				checked: false,
				layerName: "brgm_risques:CAVITE_COMMUNE",
				qtipCfg: mkqtip("risques", 327, "CAVITE_COMMUNE")
			},{
				text: "Mouvements de terrain",
				minScale: 2500,
				maxScale: 100000,
				checked: false,
				layerName: "brgm_risques:MVT_LOCALISE",
				qtipCfg: mkqtip("risques", 187, "MVT_LOCALISE")
			},{
				text: "Mouvements de terrain non localis&eacute;s",
				minScale: 2500,
				maxScale: 100000,
				checked: false,
				layerName: "brgm_risques:MVT_COMMUNE",
				qtipCfg: mkqtip("risques", 312, "MVT_COMMUNE")
			},{
				text: "S&eacute;ismes",
				minScale: 250000,
				checked: false,
				layerName: "brgm_risques:SIS_METROPOLE",
				qtipCfg: mkqtip("risques", 287, "SIS_METROPOLE")
			},{
				text: "Anciens sites industriels et activiti&eacute;s de service",
				minScale: 2500,
				checked: false,
				layerName: "brgm_risques:BASIAS_LOCALISE",
				qtipCfg: mkqtip("risques", 290, "BASIAS_LOCALISE")
			},{
				text: "Anciens sites industriels et activiti&eacute;s de service - localis&eacute; &agrave l'adresse",
				minScale: 2500,
				checked: false,
				layerName: "brgm_risques:BASIAS_ADRESSE",
				qtipCfg: mkqtip("risques", 305, "BASIAS_ADRESSE")
			},{
				text: "Anciens sites industriels et activiti&eacute;s de service - non localis&eacute;",
				minScale: 2500,
				checked: false,
				layerName: "brgm_risques:BASIAS_COMMUNE",
				qtipCfg: mkqtip("risques", 420, "BASIAS_COMMUNE")
			},{
				text: "Sites et sols pollu&eacute;s",
				minScale: 2500,
				checked: false,
				layerName: "brgm_risques:BASOL_LOCALISE",
				qtipCfg: mkqtip("risques", 146, "BASOL_LOCALISE")
			},{
				text: "indondations/remont&eacute;es de nappes en domaine de socle",
				minScale: 100000,
				checked: false,
				layerName: "brgm_risques:REM_NAPPE_SOCLE",
				qtipCfg: mkqtip("risques", 212, "REM_NAPPE_SOCLE")
			}]
		}]
	},{
		text: "BD Carto IGN 2009",
		checked: false,
		expanded: true,
		children: [{
			text: "Limites Administratives",
			checked: false,
			expanded: true,
			children: [{
				text: "Commune",
				checked: true,
				layerName: "ign:commune",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'commune', rule: "Limite de commune"})
			},{
				text: "Canton",
				checked: false,
				layerName: "ign:canton",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'canton', rule: "Limite de canton"})
			},{
				text: "Arrondissement",
				checked: false,
				layerName: "ign:arrondissement",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'arrondissement', rule: "Limite d'arrondissement"})
			},{
				text: "D&eacute;partement",
				checked: false,
				layerName: "ign:departement",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'departement', rule: 'Limite de departement'})
			},{
				text: "R&eacute;gion",
				checked: false,
				layerName: "ign:region",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'region', rule: 'Limite de region'})
			}]
		},{
			text: "R&eacute;seau Routier",
			checked: false,
			expanded: true,
			children: [{
				text: "Equipement Routier",
				checked: false,
				layerName: "ign:equipement_routier",
				expanded: false,
				children: [{
					text: "Aire de repos",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'equipement_routier', rule: 'Aire de repos'})
				},{
					text: "Aire de service",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'equipement_routier', rule: 'Aire de service'})
				},{
					text: "Gare de p&eacute;age",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'equipement_routier', rule: 'Gare de peage'})
				},{
					text: "Tunnel",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'equipement_routier', rule: 'Tunnel'})
				}]
			},{
				text: "Routes",
				checked: false,
				layerNames: ["ign:troncon_route","ign:noeud_routier"],
				expanded: false,
				children: [{
					text: "Bretelle",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'troncon_route', rule: 'Bretelle'})
				},{
					text: "Piste cyclable",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'troncon_route', rule: 'Piste cyclable'})
				},{
					text: "Liaison locale",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'troncon_route', rule: 'Liaison locale'})
				},{
					text: "Liaison r&eacute;gionale",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'troncon_route', rule: 'Liaison regionale'})
				},{
					text: "Liaison principale",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'troncon_route', rule: 'Liaison principale'})
				},{
					text: "Autoroute",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'troncon_route', rule: 'Type autoroutier'})
				}]
			}]
		},{
			text: "Equipement",
			checked: false,
			expanded: true,
			children: [{
				text: "A&eacute;rodrome",
				checked: false,
				layerNames: ["ign:aerodrome", "ign:piste_aerodrome"],
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'aerodrome', rule: 'AERODROME'})
			},{
				text: "Ligne &eacute;lectrique",
				checked: false,
				layerName: "ign:ligne_electrique",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'ligne_electrique', rule: 'LIGNE_ELECTRIQUE'})
			}]
		},{
			text: "Toponymie",
			checked: false,
			expanded: true,
			children: [{
				text: "Etablissement",
				checked: false,
				layerName: "ign:etablissement",
				expanded: false,
				children: [{
					text: "A&eacute;rogare",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'etablissement', rule: 'Aerogare'})
				},{
					text: "Enseignement",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'etablissement', rule: 'Enseignement'})
				},{
					text: "H&ocirc;pital",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'etablissement', rule: 'Hopital'})
				},{
					text: "H&ocirc;tel d&eacute;partemental",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'etablissement', rule: 'Hotel departemental'})
				},{
					text: "H&ocirc;tel r&eacute;gional",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'etablissement', rule: 'Hotel regional'})
				},{
					text: "Pr&eacute;fecture",
					icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'etablissement', rule: 'Prefecture'})
				}]
			},{
				text: "Sommets, cols",
				checked: false,
				layerName: "ign:point_remarquable_relief",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'point_remarquable_relief', rule: 'Sommet'})
			},{
				text: "Zone r&eacute;glement&eacute;e touristique",
				checked: false,
				layerName: "ign:zone_reglementee_touristique",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_reglementee_touristique', rule: 'Zone Reglementee Touristique'})
			}]
		},{
			text: "R&eacute;seau Ferr&eacute;",
			checked: false,
			layerNames: ["ign:troncon_voie_ferree","ign:noeud_ferre"],
			expanded: false,
			children: [{
				text: "Embranchement",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'noeud_ferre', rule: 'Embranchement'})
			},{
				text: "Gare de fret",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'noeud_ferre', rule: 'Gare de fret'})
			},{
				text: "Gare de voyageurs",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'noeud_ferre', rule: 'Gare de voyageurs'})
			},{
				text: "Gare de voyageurs et fret",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'noeud_ferre', rule: 'Gare de voyageurs et de fret'})
			},{
				text: "Voie normale",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'troncon_voie_ferree', rule: 'Voie normale'})
			}]
		},{
			text: "Hydrographie",
			checked: false,
			layerNames: ["ign:surface_hydrographique","ign:troncon_hydrographique","ign:ponctuel_hydrographique"],
			expanded: false,
			children: [{
				text: "Eau libre",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'surface_hydrographique', rule: 'Eau libre'})
			},{
				text: "De 0 &agrave; 15M",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'troncon_hydrographique', rule: 'De 0 a 15 metres'})
			},{
				text: "Entre 15 et 50M",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'troncon_hydrographique', rule: 'Entre 15 et 50 metres'})
			},{
				text: "Plus de 50M",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'troncon_hydrographique', rule: 'Plus de 50 metres'})
			},{
				text: "Barrage de retenue",
				maxScale: 100000,
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'ponctuel_hydrographique', rule: 'Barrage de retenue'})
			}]
		},{
			text: "Occupation des sols",
			checked: false,
			layerName: "ign:zone_occupation_sol",
			expanded: false,
			children: [{
				text: "B&acirc;ti",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_occupation_sol', rule: 'Bati'})
			},{
				text: "Broussailles",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_occupation_sol', rule: 'Broussailles'})
			},{
				text: "Carri&egrave;re, d&eacute;charge",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_occupation_sol', rule: 'Carriere, decharge'})
			},{
				text: "Eau libre",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_occupation_sol', rule: 'Eau libre'})
			},{
				text: "For&ecirc;t",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_occupation_sol', rule: 'Foret'})
			},{
				text: "Rocher, &eacute;boulis",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_occupation_sol', rule: 'Rocher, eboulis'})
			},{
				text: "Sable, gravier",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_occupation_sol', rule: 'Sable, gravier'})
			},{
				text: "Vigne, verger",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_occupation_sol', rule: 'Vigne, verger'})
			},{
				text: "Prairie",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_occupation_sol', rule: 'Prairie'})
			},{
				text: "Marais, tourbi&egrave;re",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_occupation_sol', rule: 'Marais, tourbiere'})
			},{
				text: "Zone d'activit&eacute;",
				icon: mapfish.Util.getIconUrl(wms_icon_url, {layer: 'zone_occupation_sol', rule: "Zone d'activites"})
			}]
		}]
	},{
		text: "Dessin",
		checked: true,
		layerName: "drawlayer"
}];

var wmslayers = [{
		name: "ign",
		url: ["http://wms-1.craig.fr/ign",
			"http://wms-2.craig.fr/ign",
			"http://wms-3.craig.fr/ign",
			"http://wms-4.craig.fr/ign"],
		params: { layers: [
			"zone_occupation_sol", /* habillage */
			"commune","region","departement","canton","arrondissement", /* administratif */
			"troncon_route","noeud_routier","equipement_routier", /* reseau_routier */
			"troncon_voie_ferree","noeud_ferre", /* reseau_ferre */
			"surface_hydrographique","troncon_hydrographique","ponctuel_hydrographique", /* hydrographie */
			"aerodrome","piste_aerodrome","ligne_electrique", /* equipement */
			"etablissement","point_remarquable_relief","zone_reglementee_touristique" /* toponymie */
			],
			transparent: "true"},
		options: {isBaseLayer: false, attribution: 'BD Carto &copy; IGN'}
	},{
		name: "brgm_geologie",
	url: "http://geoservices.brgm.fr/geologie",
		params: { layers: [ "SCAN_F_GEOL1M","SCAN_D_GEOL50", "LITHO_1M_SIMPLIFIEE",
				"BSS", "BSS_ES", "BEPH_FORAGE"
			], transparent: "true"},
		options: {isBaseLayer: false, attribution: '&copy; BRGM'}
	},{
		name: "brgm_materiaux",
	url: "http://geoservices.brgm.fr/odmgm",
		params: { layers: [ "EXPLOIT_ACTIVE", "EXPLOIT_FERMEE"
			], transparent: "true"},
		options: {isBaseLayer: false, attribution: '&copy; BRGM'}
	},{
		name: "brgm_risques",
	url: "http://geoservices.brgm.fr/risques",
		params: { layers: [ "ALEARG", "REM_NAPPE_SOCLE", "SIS_METROPOLE",
				"CAVITE_LOCALISEE", "CAVITE_COMMUNE", "MVT_LOCALISE", "MVT_COMMUNE",
				"BASIAS_LOCALISE", "BASIAS_ADRESSE", "BASIAS_COMMUNE", "BASOL_LOCALISE"
			], transparent: "true"},
		options: {isBaseLayer: false, attribution: '&copy; BRGM'}
	},{
		name: "geosignal",
		url: ["http://www.geosignal.org/cgi-bin/wmsmap?"],
		params: { layers: ["RASTER1000k", "RASTER500k", "RASTER250k", "RASTER100k", "RASTER50k", "RASTER25k", "RASTER5k"],
			transparent: "true"},
		options: {isBaseLayer: false, attribution: 'Raster &copy; Geosignal'}
	},{
		name: "mnt_couleur",
		url: ["http://wms-1.craig.fr/mnt",
			"http://wms-2.craig.fr/mnt",
			"http://wms-3.craig.fr/mnt",
			"http://wms-4.craig.fr/mnt"],
		params: { layers: ["mnt_couleur"],
			format: OpenLayers.Util.alphaHack() ? 'image/gif' : 'aggpng24',
			transparent: "true"},
		options: {opacity: 0.70, isBaseLayer: false, attribution: 'MNT CRAIG TopoGEODIS'}
	},{
		name: "mnt_ombrage",
		url: ["http://wms-1.craig.fr/mnt",
			"http://wms-2.craig.fr/mnt",
			"http://wms-3.craig.fr/mnt",
			"http://wms-4.craig.fr/mnt"],
		params: { layers: ["mnt_ombrage"],
			format: OpenLayers.Util.alphaHack() ? 'image/gif' : 'aggpng24',
			transparent: "true"},
		options: {isBaseLayer: false, attribution: 'MNT CRAIG TopoGEODIS'}
	},{
		name: "courbes_niveau",
		url: ["http://wms-1.craig.fr/mnt",
			"http://wms-2.craig.fr/mnt",
			"http://wms-3.craig.fr/mnt",
			"http://wms-4.craig.fr/mnt"],
		params: { layers: ["courbes_niveau"],
			format: OpenLayers.Util.alphaHack() ? 'image/gif' : 'aggpng24',
			transparent: "true"},
		options: {isBaseLayer: false, attribution: 'MNT CRAIG TopoGEODIS'}
	},{
		name: "bdortho",
		url: ["http://wms-1.craig.fr/bdortho",
			"http://wms-2.craig.fr/bdortho",
			"http://wms-3.craig.fr/bdortho",
			"http://wms-4.craig.fr/bdortho"],
		params: { layers: ["allier_2002",
			"cantal_2000","cantal_2005",
			"haute_loire_2000","haute_loire_2005",
			"puy_de_dome_1999","puy_de_dome_2005"
			],
			format: 'jpeg',
			transparent: "true"},
		options: {isBaseLayer: false, attribution: 'BD Ortho &copy; IGN'}
}];

var tmslayers = [{
		name: "ortho",
		url: cache_urls,
		options: { layername: "ortho", type: "jpeg", isBaseLayer: false, attribution: 'Ortho CRAIG TopoGEODIS' }
	},{
		name: "ortho-agglos",
		url: cache_urls,
		options: { layername: "ortho-agglos", type: "jpeg", isBaseLayer: false, attribution: 'Ortho CRAIG TopoGEODIS' }
	},{
		name: "irc",
		url: cache_urls,
		options: { layername: "ortho-irc", type: "jpeg", isBaseLayer: false, attribution: 'Ortho IRC CRAIG TopoGEODIS' }
	},{
		name: "scan",
		url: cache_urls,
		options: { minScale:500000, maxScale:5000, layername: "scan", type: "jpeg", isBaseLayer: false, attribution: 'Scan25/1000 &copy; IGN' }
}];

var queryablelayerurls = [
	'http://wms-1.craig.fr/ign',
	'http://geoservices.brgm.fr/risques',
	'http://geoservices.brgm.fr/odmgm',
	'http://geoservices.brgm.fr/geologie'];
var queryablelayersname = new RegExp('^ign|brgm');

