function $write(mess) {
	//if($debug) $debug.write(mess);
    //console.log(mess);
}

var gMap;

var MAPEXTENT = 0;           // extention de la carte, necessaire pour le fullextent
var MAPSCALE  = 0;
var MOUSE_STATE = false ;

var ROLLER_ACTIVATE;     // etat du roulette du souris

goTimer = window.setTimeout("",1000);
var counterDIV=0;
function handleDIV(e) {
    counterDIV +=	Event.wheel(e);
    sizefactor = 1+(counterDIV/10);
    gMap.wheelZoom(Math.abs(sizefactor));
}
function initMap(){
  gMap = new gsMap('visualisation');
  new gsMapListener(gMap);
  new toolYet(gMap);
  //gWindowz = new gsWindowz(gMap);
  var lyr = gMap.addLayer();
  var slide = new gsMapLayerOpacity(lyr, {
    clientLayer: 1,
    startval: 50
  });
  new gsMapLoading(gMap);
  //if(arguments.length == 1)
    /*
  	param = "idZone="+arguments[0]+"&act=recadrage" ;
  	gMap.tool.setMode(106) ;
	gMap.sendX_Load(param) ; 

	if(arguments.length == 2){
		aAna = arguments[1].split('_');
  		param = "idAnl="+aAna[0]+"&idNiveau="+aAna[1]+"&act=classif" ;
		gMap.sendX_Load(param) ;
	}
	*/
	
	if(arguments.length == 2){
		aAna = arguments[1].split('_');
  		param = "idZone="+arguments[0]+"&idAnl="+aAna[0]+"&idNiveau="+aAna[1]+"&act=classif" ;
		gMap.sendX_Load(param) ;
	} else {
		param = "&act=recadrage" ;
		gMap.tool.setMode(106) ;
		gMap.sendX_Load(param) ;		
	}
	
	gMap.tool.setMode(100) ;
}

function initMap_OLD(){
    $('visualisation').addEvent("mousewheel", handleDIV);
    gMap = new gsMap('visualisation');
    new gsMapListener(gMap);
    new toolYet(gMap);
    new gsMapHistory(gMap);
    gWindowz = new gsWindowz(gMap);
    gPicker = new gsPicker();
    var lyr = gMap.addLayer();
    var slide = new gsMapLayerOpacity(lyr, {
        clientLayer: 1,
        startval: 50
    });
    /*
    new gsMapLoading(gMap);
    if(window.parent.document.getElementById('cadrage')){
    	idZone = window.parent.document.getElementById('cadrage').value ;
    	param = "idZone"+idZone+"&act=recadrage" ;
    	gMap.sendX_Load(param) ;	
    }
    */
}

var gsMapListener = new Class ({
    initialize: function(pMap) {
        this.map = pMap;
        this.map.addEvent('onRequestResult', this.requestResult.bind(this));
        this.map.addEvent('onToolEnd', this.toolEnd.bind(this));
    },
    requestResult: function(rs) {
        $write("gsMapListener::requestResult");
        
	    if(rs.extent){
            if(MAPEXTENT==0) MAPEXTENT = rs.extent;
        }
        //Actualise l'échelle dans le InputBox
        if(rs.scale){
            $(DIVECHELLE).value = Math.round(rs.scale);
	        if(MAPSCALE==0) MAPSCALE = rs.scale;
        }
       	if(rs.selection && rs.selection != "") {
       		afficheSelection();
       	}
        
       	if(rs.toeval && rs.toeval != "") {
       		try {
       			eval(rs.toeval);
       		}catch(e) {
       			//
       		}
       	}
    },
    toolEnd: function(tool) {
        switch(tool.mode){
            case GSMAP_SELECTIONPOINT:
                var pt = this.map.t.screenToMap(tool.point, "Point").toString('_');
                var query = "ctrlDown="+tool.keyControl+"&ptDown="+pt;
                this.map.draw(query);
                break;
            case GSMAP_SELECTIONCIRCLE:
                var pt = this.map.t.screenToMap(tool.circle.scrCenter, "Point").toString('_');
                var r  = this.map.t.screenToMap(tool.circle.scrRadius, "Number");
                var query = "ctrlDown="+tool.keyControl+"&ptCenter="+pt+'&ptRadius='+r;
                this.map.draw(query);
                break;
            case GSMAP_SELECTIONRECT:
                this._points = new Points();
                this._points.add(tool.rectangle.screenTL);
                this._pt = new Point(tool.rectangle.screenTL.x,tool.rectangle.screenBR.y);
                this._points.add(this._pt);
                this._points.add(tool.rectangle.screenBR);
                this._pt = new Point(tool.rectangle.screenBR.x,tool.rectangle.screenTL.y);
                this._points.add(this._pt);                
                this._points.add(tool.rectangle.screenTL);
                var rect = this.map.t.screenToMap(this._points, "Points").toString();
                var query = "typePoly=rect&ctrlDown="+tool.keyControl+"&ptPoly="+rect;
                this.map.draw(query);
                break;
            case GSMAP_SELECTIONPOLY:
                var geom = this.map.t.screenToMap(tool.polygon.screenGeom,"Points")
                var query = "typePoly=true&ctrlDown="+tool.keyControl+"&ptPoly="+geom.toWKT(true);
                this.map.draw(query);
                break;
        }
    }
    
    
});
            
            
