/*******
 * Auteur : Jérôme ICARD
 * Date : 04/09
 * cartoDynmap.js
 * SRO-PACA.ORG scripts carto plainte / observation / suivi sur page ACCUEIL
 */
 
/***************************************************************** CONSTANTES */
var cstYtransformGeneral = (1790204.01414707+1884640.76227719);
var varcanLanceGeo = false;
var listSuiviLoaded = false;
var actualParam="";
var currentStrTitrePlainte = "";
var zonePlaintexmin = "";
var zonePlaintexmax = "";
var zonePlainteymin = "";
var zonePlainteymax = "";

var zoneObservxmin = "";
var zoneObservxmax = "";
var zoneObservymin = "";
var zoneObservymax = "";
var monAnalyse= "";

// Campagne par défaut
var Campagne_Defaut = 'odeur|jury';

/**********************************************************API DYNMAP ANALYSE */

/**
 * Classe de gestion des parametres dynamiques et analyses de la carto dynmap
 */
var AnalyseControl=Class.create();
AnalyseControl.prototype=
{
	initialize:function(analyseDefaut,layerDefaut)
	{
		this.dynmapAnalyseParam = "";
		this.currentAnalyse     = analyseDefaut;
		this.currentLayer       = layerDefaut;
	},
	changeDynmapAnalyseParam:function(param)
	{
		// alert ('changeDynmapAnalyseParam ('+ param +')');
		
		this.dynmapAnalyseParam = param; 
	    if (this.currentAnalyse)
	    {
	        chgStateAnalyse(this.currentAnalyse, '1', this.dynmapAnalyseParam);
	        if (this.currentLayer != "" && this.currentLayer != null)
	        {
	            chgStateLayer(this.currentLayer,'1',1,this.currentAnalyse);
	        }
	    }
		this.getNbPlainte();
	},
	afficheAnalyse:function(analyse)
	{
		strStateGroupes = "";
		arrAnalyse = analyse.split ("."); 
		if (this.currentAnalyse != arrAnalyse[0]) // ne recharge pas 2 fois la même analyse
		{
			strStateGroupes += "A"+this.currentAnalyse+"=0,";
			if (this.currentLayer != "" && this.currentLayer != null)
	        {
				strStateGroupes += this.currentLayer+"=0,";
	        }
		    this.currentLayer = arrAnalyse[1];
		    this.currentAnalyse = arrAnalyse[0];
		    strStateGroupes += "A"+this.currentAnalyse+"=1,";
		    
		    if (this.currentLayer != "" && this.currentLayer != null)
	        {
				strStateGroupes += this.currentLayer+"=1,"; 
	        }
		    if (strStateGroupes!= "")
		    {
		    	strStateGroupes = strStateGroupes.substring(0,strStateGroupes.length-1);
		    	chgStateGroupes(strStateGroupes);
		    }
		}	
	},
	hideAll:function()
	{
        strStateGroupes = "1=0,2=0";
		chgStateGroupes(strStateGroupes);    	
	}
	,
	showAll:function()
	{
        strStateGroupes = "1=1,2=1";
		chgStateGroupes(strStateGroupes);    	
	},
	getNbPlainte:function ()
	{	
		setZonePlainte();
		
		arrPeriode = getPeriodeInfo("Plainte");
		
		day = "dateDeb="+arrPeriode["dateDeb"]+"&dateFin="+arrPeriode["dateFin"];
		
		zonegeo = "XMIN="+zonePlaintexmin+"&XMAX="+zonePlaintexmax+"&YMIN="+zonePlainteymin+"&YMAX="+zonePlainteymax;
		
		pars = day+"&"+zonegeo;
		
		url = "/indexmvc.php?cont=accueil&event=getNbrePlainte";
	    new Ajax.Request(url, { method : "post", parameters : pars, onComplete : _getNbrePlainte, asynchronous : true}); 
	}
}



/**************************************************** retour de getNbPlainte **/
function _getNbrePlainte (evt)
{
	nbPlainte = 0;
	strPlainte = "Il n'y aucune plainte recensée sur cette zone et avec la période spécifié. Pour imprimer un rapport détaillé essayez de changer de zone et/ou de période. ";
	Element.hide('buttonPrintPlainte');
	if(evt.responseText.indexOf("nbPlainte|")>-1 && (evt.responseText.length)<15)
	{
		arrtemp = evt.responseText.split("|");
		nbPlainte = arrtemp[1];
		if (nbPlainte>0)
		{
			strZone = $('GeoSignPlainte').options[$('GeoSignPlainte').options.selectedIndex].text;
			strDay = $('selectPlainte').value;
			strDay = parseInt(strDay)+1;
			
			if (nbPlainte == 1)	
			{
				currentStrTitrePlainte = "Une Plainte « Odeurs » a été recensée par la SRO sur la zone ";
			}
			else
			{
				currentStrTitrePlainte = nbPlainte + " Plaintes « Odeurs » ont été recensées par la SRO sur la zone ";
			}
			currentStrTitrePlainte += "'"+strZone+"'";
			if ($('selectPlainte').value != "-1")
			{	
				if (strDay>1)
				{
					currentStrTitrePlainte += " au cours des " + strDay + " derniers jours";
				}
				else
				{
					currentStrTitrePlainte += " au cours du dernier jour";
				}
			}
			else
			{
				currentStrTitrePlainte += " du "+$('dateDebPlainte').value+" au "+$('dateFinPlainte').value;
			}
			
			strPlainte = "<p><img src=\"sro_paca_home/pastille_rouge.png\" width=\"12px\"> "+currentStrTitrePlainte+" </p>";
			Element.show('buttonPrintPlainte');
			
		}
	}
	else
	{
		strPlainte = "Une erreur est survenue, merci de bien vouloir re essayer plus tard<br><br>"+evt.responseText;
	}
	$('divLabelLegendePlainte').innerHTML = strPlainte;
}


/******************************************** GESTION DES ZONE GEOGRAPHIQUE****/
function canLanceGeo()
{
	varcanLanceGeo = true;
}
var lastzone="";
function zoomDep(objSelect, Type)
{
    if (varcanLanceGeo)
    {
        var mescoord = objSelect.value;
	    var cc = mescoord.split(',');
	    
	    // on  ne relocalise pas si meme zone
	    if(lastzone!=mescoord)
	    {
    		doZoom(cc[0],cc[1],cc[2],cc[3],cc[4]);
	    	setZonePlainte(objSelect);
	    }
    	lastzone = mescoord;
	}
	else
	{
	    objSelect.obSel.selectedIndex=0;
	}
	
	if ('Plainte' == Type)
	{
		monAnalyse.getNbPlainte();
	} // if
}
function setZonePlainte(objSelect)
{
    mescoord = $('GeoSignPlainte').value;
    cc = mescoord.split(',');
	zonePlaintexmin = parseFloat(cc[0]);
	zonePlaintexmax = parseFloat(cc[0])+parseFloat(cc[2]);
	zonePlainteymin = cstYtransformGeneral - ( parseFloat(cc[1]) + parseFloat(cc[3]) );
	zonePlainteymax = cstYtransformGeneral - parseFloat(cc[1]);
}

/****************************************************** GESTION DE LA PERIODE */
var modeSimple = Array();
modeSimple["Plainte"] = true;
modeSimple["Observ"] = true;


function periodeChanged(param,type)
{
  if(param=='-1')
  {
    //Element.show('imgShowCalDate'+type);
    showCalDate(type);
  }
  else
  {
    /*
		//Element.hide('imgShowCalDate'+type);
  	separator = "-";
  	this.dateFin = new Date();
  	this.dateDeb = new Date();	
  	this.dateDeb.setDate(this.dateDeb.getDate()- parseInt(param));
  	var strDateDeb = "" + this.dateDeb.getFullYear()+separator+(this.dateDeb.getMonth()+1)+separator+this.dateDeb.getDate();
  	var strDateFin = "" + this.dateFin.getFullYear()+separator+(this.dateFin.getMonth()+1)+separator+this.dateFin.getDate();
    modeSimple[type] = true;

		
		monAnalyse.changeDynmapAnalyseParam("dateDeb:'"+strDateDeb+"'|dateFin:'"+strDateFin+"'");
		*/
		
		// On change les paramétres de l'analyse
		monAnalyse.changeDynmapAnalyseParam(Get_Params (type));
  }
}



function verifDate(type)
{
	var date1 = new Date(2009, 1, 1);
	var date2 = new Date(2009, 4, 1);
	var date3 = new Date(2010, 1, 1);
	var time1 = date1.getTime();
	var time2 = date2.getTime();
	var time3 = date3.getTime();
	var timemonth = time2-time1;
	var timeyear  = time3-time1;
	
	var today = new Date();
	var timetoday = today.getTime();
	var arrdateDeb = $('dateDeb'+type).value.split('-');
	year = parseFloat(arrdateDeb[2]);
	month = parseFloat(arrdateDeb[1]);
	day = parseFloat(arrdateDeb[0]);
	var dateDeb = new Date(year, month-1, day);
	timedateDeb = dateDeb.getTime();
	var timedateDeb = (timetoday - timedateDeb);
	
	Element.removeClassName('dateDeb'+type,'erreur_form');
	if (type=="Plainte" && timedateDeb > timemonth)
	{
		Element.addClassName('dateDeb'+type,'erreur_form');
		alert('Merci de choisir une période plus récente (maximum 3 mois en arrière pour les gênes).');
		return false;
	}
	
	if (type=="Observ" && timedateDeb > timeyear)
	{
		Element.addClassName('dateDeb'+type,'erreur_form');
		alert('Merci de choisir une période plus récente (maximum 1 an en arrière pour les observations).');
		return false;
	}
	
	return true;
}
var msgAlertDate = "Merci de préciser la date de début ainsi que la date de fin pour la période d'analyse.";
function dateChanged(type)
{
	hideCalendarv2();
	Element.removeClassName('dateDeb'+type,'erreur_form');
	Element.removeClassName('dateFin'+type,'erreur_form');
	if($('dateDeb'+type).value!="" && $('dateFin'+type).value!="")
	{
		if (verifDate(type))
		{
			arrdateDeb = $('dateDeb'+type).value.split('-');
			dateDeb = arrdateDeb[2]+"-"+arrdateDeb[1]+"-"+arrdateDeb[0];
			arrdateFin = $('dateFin'+type).value.split('-');
			dateFin = arrdateFin[2]+"-"+arrdateFin[1]+"-"+arrdateFin[0];
			modeSimple[type] = false;
			
			// On récupère la campagne
			var Campagne = Get_Campagne (type);
			// On récupère le jury
			var Jury = Get_Jury (type);
	
			monAnalyse.changeDynmapAnalyseParam("dateDeb:'"+dateDeb+"'|dateFin:'"+dateFin+"'|campagne:"+ Campagne);
		}	
	}
	else
	{
		Element.addClassName('dateDeb'+type,'erreur_form');
		Element.addClassName('dateFin'+type,'erreur_form');
		alert(msgAlertDate);
	}
}
function getPeriodeInfo(type)
{
	if(modeSimple[type]==true)
	{
		separator = "-";
		this.dateFin = new Date();
		this.dateDeb = new Date();	
		this.dateDeb.setDate(this.dateDeb.getDate()- parseInt($('select'+type).value));
		var strDateDeb = "" + this.dateDeb.getFullYear()+separator+(this.dateDeb.getMonth()+1)+separator+this.dateDeb.getDate();
		var strDateFin = "" + this.dateFin.getFullYear()+separator+(this.dateFin.getMonth()+1)+separator+this.dateFin.getDate();
	}
	else
	{
		if($('dateDeb'+type).value!="" && $('dateFin'+type).value!="")
		{
			arrdateDeb = $('dateDeb'+type).value.split('-');
			strDateDeb = arrdateDeb[2]+"-"+arrdateDeb[1]+"-"+arrdateDeb[0];
			arrdateFin = $('dateFin'+type).value.split('-');
			strDateFin = arrdateFin[2]+"-"+arrdateFin[1]+"-"+arrdateFin[0];
		}
		else
		{
			alert(msgAlertDate +" getPeriodeInfo()");
		}
	}
	var dataRetour = Array();
	dataRetour["dateDeb"]=strDateDeb;
	dataRetour["dateFin"]=strDateFin;
	return dataRetour;
}

function showCalDate(type)
{
	Element.hide('spanSelectDate'+type);
	Element.show('spanCalDate'+type);
	return false;
}
function hideCalDate(type,val)
{
	Element.hide('spanCalDate'+type);
	Element.show('spanSelectDate'+type);
	hideCalendarv2();
	$('select'+type).value=parseInt(val);
	periodeChanged(parseInt(val),type)
	return false;
}

/****************************************************** GESTION DE LA CAMPAGNE */

// Action lors du changement de campagne
function campagneChanged (Type)
{

	// On change les paramétres de l'analyse
	monAnalyse.changeDynmapAnalyseParam(Get_Params (Type));
} // campagneChanged ()

// Renvoie l'identifiant de la campagne (le nom) et le jury
function Get_Campagne_Jury (Type)
{
	// Si l'élément existe et qu'il a une valeur, on récupère cette valeur, sinon la valeur par défaut
	var Valeur = ($('selectCampagne'+ Type) && $('selectCampagne'+ Type).value) ? $('selectCampagne'+ Type).value : Campagne_Defaut;
	
	// On sépare le nom de la campagne et celui du jury
	var Tab_Valeurs = Valeur.split('|');
	
	// On transforme le tableau en tableau associatif
	var Tab = new Array ();
	Tab['campagne'] = Tab_Valeurs[0];
	Tab['jury'] 		= Tab_Valeurs[1];
	Tab['origine'] 	= Tab_Valeurs[2];
	Tab['legende'] 	= Tab_Valeurs[3];
	
	// On renvoie le tableau
	return Tab; 
} // Get_Campagne_Jury ()

// Renvoie le nom de la campagne
function Get_Campagne (Type)
{
	// On récupère les données
	var Tab = Get_Campagne_Jury (Type);
	// On renvoie le nom de la campagne
	return Tab['campagne'];
} // Get_Campagne ()

// Renvoie le nom du jury
function Get_Jury (Type)
{
	// On récupère les données
	var Tab = Get_Campagne_Jury (Type);
	// On renvoie le nom de la campagne
	return Tab['jury'];
} // Get_Jury ()

// Renvoie le nom du jury
function Get_Origine (Type)
{
	// On récupère les données
	var Tab = Get_Campagne_Jury (Type);
	// On renvoie le nom de la campagne
	return Tab['origine'];
} // Get_Jury ()

// Renvoie le nom du jury
function Get_Legende (Type)
{
	// On récupère les données
	var Tab = Get_Campagne_Jury (Type);
	// On renvoie le nom de la campagne
	return Tab['legende'];
} // Get_Jury ()

// Renvoie le nom en texte complet de la campagne
function Get_Nom_Campagne (Type)
{
	// On récupère le nom
	var Nom = $('selectCampagne'+ Type).options[$('selectCampagne'+ Type).selectedIndex].innerHTML;
	
	// On renvoie le nom
	return Nom;
} // Get_Nom_Campagne ()

// Edite le select des campagnes avec les campagnes récupèrer par la requête Ajax
function Edite_SelectCampagne (Reponse)
{
	// Type (Observ / Plainte)
	var Type = 'Observ';
	
	// On récupère les donneés
	var Tab_Donnees = eval ('('+ Reponse.responseText +')');
	
	// Nombre d'élément dans le tableau
	var Nb = Tab_Donnees.length;
	
	// Nombre d'élément dans le select
	var Nb_Select = $('selectCampagne'+ Type).length;
	
	// On parcours le tableau
	for (var i = 0; i < Nb; i++)
	{
		// On définit les infos pour l'option
		var Libelle = Tab_Donnees[i]['libelle'];
		var Valeur 	= Tab_Donnees[i]['table_observ'] +'|'+ Tab_Donnees[i]['table_jury']+'|'+ Tab_Donnees[i]['origine']+'|'+ Tab_Donnees[i]['legende'];
		
		// On ajout une Option dans le Select
		$('selectCampagne'+ Type)[(Nb_Select+i)] = new Option(Libelle, Valeur);
	} // for
} // Edite_SelectCampagne (Type)

/****************************************************** GESTION DES PARAMETRES */
// Renvoie la chaine des paramètres
function Get_Params (Type)
{
	// Initialisation
	var Param = '';
	
	// On récupère la péridoe
	var Periode = getPeriodeInfo (Type);
	
	// On récupère la campagne
	var Campagne = Get_Campagne (Type);
	// On récupère le jury
	var Jury = Get_Jury (Type);
	
	// On édite la chaine des paramètres
	Param = 'dateDeb:\''+ Periode['dateDeb'] +'\'|dateFin:\''+ Periode['dateFin'] +'\'|campagne:'+ Campagne +'|jury:'+ Jury;
	
	// alert ('Param : '+ Param);
	// On renvoie la chaine
	return Param;
} // Get_Params ()

/**************************************INTERFACE MODELE GESTION DES ONGLETS****/
function activePlainte()
{
	
	toogleBandeau('0');
	Element.removeClassName('divCarteCadre','cacheFlash');
	Element.show('periodePlainte');
	Element.hide('periodeObserv');
	Element.hide('divSuiviCadre');
	Element.show('GeoSignPlainte');
	Element.hide('GeoSignObserv');
	Element.hide('divLegendeObserv');
	Element.show('divLegendePlainte');
	
	// Choix de la campagne
	// Element.show('campagnePlainte');
	Element.hide('campagneObserv');
	
	monAnalyse.afficheAnalyse("1.16");
	zoomDep($('GeoSignPlainte'));
}
function activeObserve()
{
	
	toogleBandeau('1');
	Element.removeClassName('divCarteCadre','cacheFlash');
	Element.show('periodeObserv');
	Element.hide('periodePlainte');
	Element.hide('divSuiviCadre');
	Element.hide('GeoSignPlainte');
	Element.show('GeoSignObserv');
	Element.hide('divLegendePlainte');
	
	// Choix de la campagne
	Element.show('campagneObserv');
	// Element.hide('campagnePlainte');
	
	Element.show('divLegendeObserv');
	monAnalyse.afficheAnalyse("2.21");
	zoomDep($('GeoSignObserv'));
}
function activeSuivi()
{
	Element.addClassName('divCarteCadre','cacheFlash');
	toogleBandeau('2');
	Element.hide('periodePlainte');
	Element.hide('periodeObserv');
	Element.show('divSuiviCadre');
	Element.hide('GeoSignPlainte');
	Element.hide('GeoSignObserv');
	Element.hide('divLegendePlainte');
	Element.hide('divLegendeObserv');
	
	// Choix de la campagne
	Element.hide('campagneObserv');
	// Element.hide('campagnePlainte');
	
	loadListSuivi();
	
}
function toogleBandeau(id)
{
	for (i=0;i<3;i++){
		Element.removeClassName('tab'+i,'tabactif');
	}	
	Element.addClassName('tab'+id,'tabactif');
}

/***************************************************GESTION IMPRESSION PDF ***/

function openRapportPlainte()
{
	/*
	$('etape').value      = "";
	$('TYPE').value       = "plainte";
	$('MODE').value       = "Image";
	$('ZONE').value       = "11";
	$('PERIODE').value    = "JOUR";
	$('F_TYPEDATE').value    = "JOUR";
	$('ON_ANNEE').value   = "";
	$('MOIS').value       = "";
	$('ANNEE').value      = "";
	$('F_JOUR').value     = $("selectPlainte").value;
	$('F_ON_ANNEE').value = "";
	$('F_MOIS').value     = "";
	$('F_ANNEE').value    = "";
	document.formRapportPub.action = "/svg/generate_public_plainte.php";
	document.formRapportPub.target = "_blank";
	document.formRapportPub.submit();
	*/
	var b=mainCarte.getCurrentBBox();		      		
	var echelle=mainCarte.getEchelle();
	var echellePrint = echelle;			      
	var icurZoomP = b.zoom;
	var XminP = b.xmin;
	var YminP = b.ymin;
	var XmaxP = b.xmax;
	var YmaxP = b.ymax;
	var angle = 0;
	var param = "";
	var screenW=parent.screen.width;
	var screenH=parent.screen.height;
	var w=450;
	var h=60;
	var argsP='&MODEL='+25;
	criteres  = '&alpha[day]=' + $('selectPlainte').value;
	
	arrDate = getPeriodeInfo("Plainte");
    criteres += '&alpha[dateDeb]=' + arrDate["dateDeb"];
	criteres += '&alpha[dateFin]=' + arrDate["dateFin"];
	
	criteres += '&alpha[zPxmin]=' + Math.round(zonePlaintexmin);
	criteres += '&alpha[zPxmax]=' + Math.round(zonePlaintexmax);
	criteres += '&alpha[zPymin]=' + Math.round(zonePlainteymin);
	criteres += '&alpha[zPymax]=' + Math.round(zonePlainteymax);
	strTitre = "strTitre="+escape(currentStrTitrePlainte);
	// echellePrint=echellePrint*8;
	window.open('/dynmap/print.dynsvg.php?XMIN='+XminP+'&YMIN='+YminP+'&XMAX='+XmaxP+'&YMAX='+YmaxP+'&ZOOM='+icurZoomP+'&ANGLE='+angle+'&'+strTitre+criteres+'&path_application='+path_application+argsP,'Reponse','width='+w+',height='+h+',left='+((screenW-w)/2)+',top='+((screenH-h)/2)+',scrollbars=yes');
}

function openRapportObserv()
{
	var b=mainCarte.getCurrentBBox();		      		
	var echelle=mainCarte.getEchelle();
	var echellePrint = echelle;			      
	var icurZoomP = b.zoom;
	var XminP = b.xmin;
	var YminP = b.ymin;
	var XmaxP = b.xmax;
	var YmaxP = b.ymax;
	var angle = 0;
	var param = "";
	var screenW=parent.screen.width;
	var screenH=parent.screen.height;
	var w=450;
	var h=120;
	var argsP='&MODEL='+28;
	criteres  = '&alpha[day]=' + $('selectObserv').value;
	
	mescoord = $('GeoSignObserv').value;
    cc = mescoord.split(',');
	zoneObservxmin = parseFloat(cc[0]);
	zoneObservxmax = parseFloat(cc[0])+parseFloat(cc[2]);
	zoneObservymin = cstYtransformGeneral - ( parseFloat(cc[1]) + parseFloat(cc[3]) );
	zoneObservymax = cstYtransformGeneral - parseFloat(cc[1]);
	
	arrDate = getPeriodeInfo("Observ");
  criteres += '&alpha[dateDeb]=' + arrDate["dateDeb"];
	criteres += '&alpha[dateFin]=' + arrDate["dateFin"];
	
	// Campagnes
	criteres += '&alpha[campagne]=' + Get_Campagne ('Observ');
	// Jury
	criteres += '&alpha[jury]=' + Get_Jury ('Observ');
	
	criteres += '&alpha[zPxmin]=' + Math.round(zoneObservxmin);
	criteres += '&alpha[zPxmax]=' + Math.round(zoneObservxmax);
	criteres += '&alpha[zPymin]=' + Math.round(zoneObservymin);
	criteres += '&alpha[zPymax]=' + Math.round(zoneObservymax);
	criteres += Get_Origine('Observ');
	criteres += '&legende_obs=' + Get_Legende('Observ');
	
	strZone = $('GeoSignObserv').options[$('GeoSignObserv').options.selectedIndex].text;
	strDay = $('selectObserv').value;
	strDay = parseInt(strDay)+1;

	currentStrTitreObserv = "Taux de perception des nez bénévoles sur la zone ";
	currentStrTitreObserv += "'"+strZone+"'";
	if ($('selectObserv').value != "-1")
	{	
  		strDate =$('selectObserv').options[$('selectObserv').options.selectedIndex].text;
		currentStrTitreObserv += " au cours des "+strDate;
	}
	else
	{
		currentStrTitreObserv += " du "+$('dateDebObserv').value+" au "+$('dateFinObserv').value;
	}
	
	// On récupère le nom de la campagne
	var Nom_Campagne = Get_Nom_Campagne('Observ');
	
	// On n'affiche pas 'campagne ...' pour la campagne principale puisque y'a déjà le mot campagne.
	// Solution barbare :s
	currentStrTitreObserv += " pour la "+ (0 == Nom_Campagne.indexOf ('Campagne') ? '' : 'campagne ') + Get_Nom_Campagne('Observ');
	
	strTitre = "strTitre="+escape(currentStrTitreObserv);
	echellePrint=echellePrint*8;
	window.open('/dynmap/print.dynsvg.php?XMIN='+XminP+'&YMIN='+YminP+'&XMAX='+XmaxP+'&YMAX='+YmaxP+'&ZOOM='+icurZoomP+'&ECHELLE='+echellePrint+'&ANGLE='+angle+'&'+strTitre+criteres+'&path_application='+path_application+argsP,'Reponse','width='+w+',height='+h+',left='+((screenW-w)/2)+',top='+((screenH-h)/2)+',scrollbars=yes');
}


/*************************************************** GESTION  SUIVI DE PLAINTE*/

function loadListSuivi()
{
	if (listSuiviLoaded==false)
	{
		$('listeSuivi').innerHTML = "<div align='center' valign='center'><img border='0' src='/images/loader.gif' ></div>";
		listSuiviLoaded = true;
		var url = "/indexmvc.php?cont=saver&event=newQueryGen&mod=suivi_plainte";
		navigationModified(url,'listeSuivi','');
	}
}
var precedTrFiche = "";
var precedColorTrFiche = "";
function loadFicheSuivi(idSuivi,color,colorAlt)
{
	$('ficheSuivi').innerHTML = "<div align='center' valign='center'><img border='0' src='/images/loader.gif' ></div>";
	var url = "/indexmvc.php?cont=accueil&event=getFicheSuivi";
	navigationModified(url,"ficheSuivi","idSuivi="+idSuivi);
	
	if (precedTrFiche != "")
	{
		$('TR'+precedTrFiche).style.backgroundColor=precedColorTrFiche;
	}
	$('TR'+idSuivi).style.backgroundColor=colorAlt;
	precedColorTrFiche = color;
	precedTrFiche = idSuivi;
}

function navigationModified (urlGet,div,otherparam){
  	var myAjax = new Ajax.Updater(div, urlGet, {method: 'post', parameters: otherparam, evalScripts:true});
}
	
function openRapportSuivi(idRapportSuivi,mode)
{
	var screenW=800;
	var screenH=600;
	var top=10;
	var left=10;
	window.open("/svg/generate_suivi.php?ID_SUIVI="+idRapportSuivi,'Reponse','width='+screenW-50+',height='+screenH-50+',left='+left+',top='+top+',scrollbars=yes,resizable=yes');
}

/********************************************************* INITIALISATION ****/	
function initApp ()
{
	/*
	eventGestPickDate = new GestEvt();
	eventGestPickDate.ajouteEvenement('PICKDATECLOSED');
	eventGestPickDate.ajouteEcouteur('PICKDATECLOSED',critereContrat.onChange);*/
	
	canLanceGeo();
	monAnalyse = new AnalyseControl("1","16");
	monAnalyse.getNbPlainte();
	/*
	var theHandle = $("handleFiche");
	var theRoot = $("rootFiche");
	Drag.init(theHandle, theRoot);*/
}
GestEvtDyn.ajouteEcouteur("MAPINIT",initApp);



function highlight(idSuivi,color){
	if (idSuivi!=precedTrFiche)
	{
		$('TR'+idSuivi).style.backgroundColor=color;
	}
}
	
/*	
// CLASSE HELPERS DRAG AND DROP
var Drag = {

	obj : null,

	init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
	{
		o.onmousedown	= Drag.start;

		o.hmode			= bSwapHorzRef ? false : true ;
		o.vmode			= bSwapVertRef ? false : true ;

		o.root = oRoot && oRoot != null ? oRoot : o ;

		if (o.hmode  && isNaN(parseInt(o.root.style.left  ))) o.root.style.left   = "0px";
		if (o.vmode  && isNaN(parseInt(o.root.style.top   ))) o.root.style.top    = "0px";
		if (!o.hmode && isNaN(parseInt(o.root.style.right ))) o.root.style.right  = "0px";
		if (!o.vmode && isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px";

		o.minX	= typeof minX != 'undefined' ? minX : null;
		o.minY	= typeof minY != 'undefined' ? minY : null;
		o.maxX	= typeof maxX != 'undefined' ? maxX : null;
		o.maxY	= typeof maxY != 'undefined' ? maxY : null;

		o.xMapper = fXMapper ? fXMapper : null;
		o.yMapper = fYMapper ? fYMapper : null;

		o.root.onDragStart	= new Function();
		o.root.onDragEnd	= new Function();
		o.root.onDrag		= new Function();
	},

	start : function(e)
	{
		var o = Drag.obj = this;
		e = Drag.fixE(e);
		var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
		var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
		o.root.onDragStart(x, y);

		o.lastMouseX	= e.clientX;
		o.lastMouseY	= e.clientY;

		if (o.hmode) {
			if (o.minX != null)	o.minMouseX	= e.clientX - x + o.minX;
			if (o.maxX != null)	o.maxMouseX	= o.minMouseX + o.maxX - o.minX;
		} else {
			if (o.minX != null) o.maxMouseX = -o.minX + e.clientX + x;
			if (o.maxX != null) o.minMouseX = -o.maxX + e.clientX + x;
		}

		if (o.vmode) {
			if (o.minY != null)	o.minMouseY	= e.clientY - y + o.minY;
			if (o.maxY != null)	o.maxMouseY	= o.minMouseY + o.maxY - o.minY;
		} else {
			if (o.minY != null) o.maxMouseY = -o.minY + e.clientY + y;
			if (o.maxY != null) o.minMouseY = -o.maxY + e.clientY + y;
		}

		document.onmousemove	= Drag.drag;
		document.onmouseup		= Drag.end;

		return false;
	},

	drag : function(e)
	{
		e = Drag.fixE(e);
		var o = Drag.obj;

		var ey	= e.clientY;
		var ex	= e.clientX;
		var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
		var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
		var nx, ny;

		if (o.minX != null) ex = o.hmode ? Math.max(ex, o.minMouseX) : Math.min(ex, o.maxMouseX);
		if (o.maxX != null) ex = o.hmode ? Math.min(ex, o.maxMouseX) : Math.max(ex, o.minMouseX);
		if (o.minY != null) ey = o.vmode ? Math.max(ey, o.minMouseY) : Math.min(ey, o.maxMouseY);
		if (o.maxY != null) ey = o.vmode ? Math.min(ey, o.maxMouseY) : Math.max(ey, o.minMouseY);

		nx = x + ((ex - o.lastMouseX) * (o.hmode ? 1 : -1));
		ny = y + ((ey - o.lastMouseY) * (o.vmode ? 1 : -1));

		if (o.xMapper)		nx = o.xMapper(y)
		else if (o.yMapper)	ny = o.yMapper(x)

		Drag.obj.root.style[o.hmode ? "left" : "right"] = nx + "px";
		Drag.obj.root.style[o.vmode ? "top" : "bottom"] = ny + "px";
		Drag.obj.lastMouseX	= ex;
		Drag.obj.lastMouseY	= ey;

		Drag.obj.root.onDrag(nx, ny);
		return false;
	},

	end : function()
	{
		document.onmousemove = null;
		document.onmouseup   = null;
		Drag.obj.root.onDragEnd(	parseInt(Drag.obj.root.style[Drag.obj.hmode ? "left" : "right"]), 
									parseInt(Drag.obj.root.style[Drag.obj.vmode ? "top" : "bottom"]));
		Drag.obj = null;
	},

	fixE : function(e)
	{
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};
*/
