/**
 * 
 * refactorisation de la classe layer user common ...
 */


function initInterfacePerso(uLog){
	
	if(uLog!='-1'){
		//alert(uLog);
		
		Element.show('interfacePersonnel');
		var url = '/dynmap/class/modules/mvccarte.php?cont=INDIVIDUALLAYER';
		url+='&event=getInterfaceCoucheFromCurrentUser';
		url+='&path_application='+path_application;

		var pars='';
	//	alert('maios zut quooiiiiii');
		var myAjax5 = new Ajax.Request(url, { method : "post", parameters : pars,  asynchronous : true,evalScripts:true,onComplete:a_initInterfacePersoff});
		//var myAjax = new Ajax.Updater('couchesPerso',url, { method : "post", parameters : pars,  asynchronous : true,evalScripts:true,onComplete:a_initInterfacePerso});
	}

}
function a_initInterfacePersoff(res){

	$('couchesPerso').innerHTML=res.responseText;

	var url = '/dynmap/class/modules/mvccarte.php?cont=INDIVIDUALLAYER';
	url+='&event=getInterfaceCoucheWmsFromCurrentUser';
	url+='&path_application='+path_application;

	var pars='';
	//$('testRe').innerHTML=url;

	var myAjax = new Ajax.Request(url, { method : "post", parameters : pars,  asynchronous : true,evalScripts:false,onComplete:a_initPersoWms});

}
function a_initPersoWms(res){

		$('couchesPersoWms').innerHTML=res.responseText;
}
initInterfacePerso.lieEvenement('USERLOGGED');



var LayerPersoManager=Class.create();
LayerPersoManager.prototype={
	initialize:function(){

	},
	openCreateWindow:function(){
		var linkOpener='/dynmap/class/modules/mvccarte.php?cont=INDIVIDUALLAYER';
		linkOpener+='&event=getNewCoucheInterface';
		linkOpener+='&path_application='+path_application;
		var tabelems=getViewBoxVars();
		linkOpener+='&Xmin='+tabelems["Xmin"]+'&Ymin='+tabelems["YminREEL"]+'&winDX='+	tabelems["winDX"]+'&winDY='+tabelems["winDY"];
		openWindow(linkOpener,"test","top=200,left=200,width=400,height=400,resizable=yes,scrollbars=yes,status=yes,toolbar=yes");
	},
	openCreateWindowCarmen:function(idservice){
	
		var linkOpener='/dynmap/class/modules/mvccarte.php?cont=INDIVIDUALLAYER';
		linkOpener+='&event=exploreCarmen';
		linkOpener+='&path_application='+path_application+'&service='+idservice;
		var tabelems=getViewBoxVars();
		linkOpener+='&Xmin='+tabelems["Xmin"]+'&Ymin='+tabelems["YminREEL"]+'&winDX='+	tabelems["winDX"]+'&winDY='+tabelems["winDY"];
		openWindow(linkOpener,"test","top=200,left=200,width=510,height=400,resizable=yes,scrollbars=yes,status=yes,toolbar=yes");
	},
	chgStateLayerPerso:function(idLayer,etat,type){

		Element.toggle('LCoche'+idLayer);
		Element.toggle('LDecoche'+idLayer);
		if(type!='wms'){
			chgStateLayer(idLayer,etat);
		}else{
			chgStateLayer(idLayer,etat);
		}

	},
	deleteLayerPerso:function(idLayer,type){
		if(type!='wms'){
			mainCarte.removeLayer(idLayer);
		}else{
			mainCarte.removeLayer(idLayer);
		}

		var url = '/dynmap/class/modules/mvccarte.php?cont=INDIVIDUALLAYER';
		url+='&event=deleteLayerPerso';
		url+='&path_application='+path_application;
		url+='&idLayer='+idLayer;
		url+='&type='+type;
		var myAjax = new Ajax.Request(url, { method : "post", parameters : '',  asynchronous : true,onComplete:this.a_delete,objetLie:this});

	},
	a_delete:function(res){
		initInterfacePerso(1);
	},
	majCreateCouchePerso:function(idLayer,position,type){
	
		var p=[{'layerId':idLayer,'position':position,'type':type}];
		this.addLayers(p); 
	},
	addLayers:function (layers){
		mainCarte.autoRefresh(false);
		this._stackedLayers=layers;
		this._addALayerStack();
	},
	_addALayerStack:function(){
		if(this._stackedLayers.length>0){
			var urlPath='&path_application='+path_application;
			aLayer=this._stackedLayers.pop();
			type =aLayer.type;
			idLayer=aLayer.layerId;
			position= aLayer.position;
			
			if(type!='wms'){
				var 	binded = this._aLayerAdded.bind(this,type,idLayer,position);
				
				var urlDyn=dynmap_url+'?method=GETINITPARAMSLAYER&args='+idLayer+urlPath;
				var myAjax = new Ajax.Request(urlDyn, { method : "get", parameters : '',  asynchronous : true,onComplete:binded});
			}else{
				var urlDyn=dynmap_url+'?method=GETINITPARAMSRASTER&args='+idLayer+urlPath;
				var 	binded = this._aLayerRasterAdded.bind(this,type,idLayer,position);
				var myAjax = new Ajax.Request(urlDyn, { method : "get", parameters : '',  asynchronous : true,onComplete:binded});
			}
		}else{
			this._afterLayersAdded();
		}
	},
	_aLayerRasterAdded:function(type,idLayer,position ,res){
		eval('response = ' + res.responseText);
		mainCarte.addPersonalRaster(response,position);
		var arrRaster = response.initRaster.split("[c]");
		
		chgStateRasterUni(arrRaster[4],1);
		GestEvtDyn.lanceEvenement('ADDED_LAYER_PERSO',[idLayer,position ,type]);
		this._addALayerStack();
	},
	_aLayerAdded:function(type,idLayer,position ,res){
		eval('response = ' + res.responseText+';');
		mainCarte.addPersonalLayer(response,position);
		mainCarte.chgStateLayer(idLayer,'1',1);
		GestEvtDyn.lanceEvenement('ADDED_LAYER_PERSO',[idLayer,position ,type]);
		this._addALayerStack();
	},
	_afterLayersAdded:function(){
		initInterfacePerso(1);
		mainCarte.autoRefresh(true);
		
	}
	

};


var layerPersoManager=new LayerPersoManager();

GestEvtDyn.ajouteEvenement('SETNEWSTATELAYERPERSO');
GestEvtDyn.ajouteEvenement('DELETELAYERPERSO');
GestEvtDyn.ajouteEcouteur('SETNEWSTATELAYERPERSO',layerPersoManager.chgStateLayerPerso,layerPersoManager);
GestEvtDyn.ajouteEcouteur('DELETELAYERPERSO',layerPersoManager.deleteLayerPerso,layerPersoManager);


