//===== Calcul la longueur restante à entrer dans le message =====//
function GetLengthRemain(Longueur, Nom){
   var iLongueur, iLongueurRestante;
   iLongueur = document.getElementById(Nom).value.length;
   if (iLongueur>Longueur) {
      document.getElementById(Nom).value = document.getElementById(Nom).value.substring(0,Longueur);
      iLongueurRestante = 0;
   }
   else {
      iLongueurRestante = Longueur - iLongueur;
   }
   if (iLongueurRestante <= 1){
      document.getElementById('Indic').innerHTML = iLongueurRestante + "&nbsp;caract&egrave;re&nbsp;restant.";
   }else{
      document.getElementById('Indic').innerHTML = iLongueurRestante + "&nbsp;caract&egrave;res&nbsp;restant.";
  }  
  
}


//===== Notation =====//
function Notation(IDImg, Validation){
  
  //On récupère la note validée par un click
  Note=document.getElementById('Note').value;

  
  //Si un id est différent de 0
  if (IDImg!=0){
    //on récupère l'image affichée
    ImageSRC=document.getElementById(IDImg).src;
    
      //Si l'image est l'image Off
      if (ImageSRC=="http://www.ace-of-spades.fr/Images/StarOff.png"){
        
        //On met les images précédentes et celle sélectionné à On
        for (i=1; i<=IDImg; i++){
          document.getElementById(i).src="http://www.ace-of-spades.fr/Images/StarOn.png";
        }
      
      //Sinon si l'image à est à On
      }else if (ImageSRC=="http://www.ace-of-spades.fr/Images/StarOn.png"){
        
        //On met les images suivantes à Off
        for (i=5; i>IDImg; i--){
          document.getElementById(i).src="http://www.ace-of-spades.fr/Images/StarOff.png";
        }
        
      }
  //si l'id est à 0
  }else{
        //On met toutes les images à Off 
        for (i=5; i>0; i--){
          document.getElementById(i).src="http://www.ace-of-spades.fr/Images/StarOff.png";
        }
        
          //si la note est > à 0
          if (Note>0){
            //On met les images correspondantes à On
            /*for (i=0; i<Note; i++){
              document.getElementById(i).src="http://www.ace-of-spades.fr/Images/StarOn.png";
            }*/
            Notation(Note, false);
          }
  }


  //Si c'est une validation de notation (click)
  if (Validation==true){
    document.getElementById('Note').value=IDImg;
  }
}

//===== Fermeture du profil =====//
function CloseProfil() {
  new Effect.BlindUp('BlocProfilGlobal', {duration:2, fps:30, from:0.0, to:1.0});
}

//===== Fermeture de la div d'indication de nouveau message===== //
function CloseIndicMessage(){
  new Effect.BlindUp('Indic_Message', {duration:1, fps:30, from:0.0, to:1.0});
}

//===== Affichage des loading =====//
function ShowLoading(Loading_Texte, Loader){
  //On remplis la div de l'image de loading
  $('Loading').innerHTML="<img src='http://www.ace-of-spades.fr/Images/"+Loader+">";
  //et d'un texte passé en paramètre
  $('Loading').innerHTML=$('Loading').innerHTML+"<br\>"+Loading_Texte;
  //On affiche le div de loading
  //Element.show('Loading');
  new Effect.Appear('Loading', {duration:0.5, fps:30, from:0.0, to:1.0});
}

//===== Affichage des loading =====//
function HideLoading(){
  //On cache le div de loading
  //Element.hide('Loading');
  new Effect.SwitchOff('Loading', {duration:1.0, fps:30, from:0.0, to:1.0});
}

//===== Affichage du message d'indication des MP =====//
function OpenIndicMP(){
  //on lit un son
  //new Sound.play('http://www.ace-of-spades.fr/Sounds/NotifyMP.wav');
  //On fait apparaitre le message
  new Effect.BlindDown('Indic_Message', {duration:1.0, fps:30, from:0.0, to:1.0});
  new Effect.Highlight('Indic_Message', {delay:0.5, startcolor:'#C1FF03', endcolor:'#362C23', restorecolor:'#362C23'})
}

//===== Affichage d'un message d'erreur =====//
function AppearMessageErreur(IDConteneur){
  new Effect.Appear(IDConteneur, {duration:2.0, fps:30, from:0.0, to:1.0});
}

/*##### Scripts Google Map #####*/
//===== Fonction pour parcourir le fichier xml de géolocalisation des membres =====*/
function GeolocalisationMembres(maCarte){
  var url_xml = "http://www.ace-of-spades.fr/Script/php/Ajax_CreateXML_Geolocalisation_Membres.php";
  GDownloadUrl(url_xml, function(data) {       
    
     var xml = GXml.parse(data);

      var markers = xml.documentElement.getElementsByTagName("marker_membre");
      
      //on parcour une premiere fois le xml pour recuperer les villes
      for (var i = 0; i < markers.length; i++) {

        //on mémorise la ville temporaire
        var VilleTemp = markers[i].getAttribute("Ville");              
          
          
          //on mémorise les pseudo pour une même ville par niveau
            var Membres="";
                                
          var i2=0;
          //on reparcour le xml
          for (i2 = 0; i2 < markers.length; i2++) {
            var ville = markers[i2].getAttribute("Ville");
            
            if (ville==VilleTemp){
        
              var pseudo = markers[i2].getAttribute("Pseudo");

              Membres=Membres + pseudo +"<br>";
              
              
              //La derniere position géographique trouvée de la ville
              var point = new GLatLng(parseFloat(markers[i2].getAttribute("Lat")),parseFloat(markers[i2].getAttribute("Long")));

              
            }
          
        
          }//toutes les villes sont parcourues
          
          
          //On place le marqueur
          marker=CreateMarkerMembres(point, Membres, VilleTemp);
          maCarte.addOverlay(marker);
        

      }
      
     });
}

//===== fonction qui crée un marqueur pour les membres =====//
function CreateMarkerMembres(point,pseudos,ville) {
  /* Options de l'icone*/
  var baseIcon = new GIcon();
  baseIcon.iconSize = new GSize(32, 32);
  baseIcon.iconAnchor = new GPoint(14, 33);
  baseIcon.infoWindowAnchor = new GPoint(29, 7);
  baseIcon.infoShadowAnchor = new GPoint(29, 7);
          
  //Marqueur Magiciens
  var Marqueur_Membre = new GIcon(baseIcon);
  Marqueur_Membre.image = "http://www.ace-of-spades.fr/Images/Icone_GGMap_membre.png"
   

  var marker = new GMarker(point,Marqueur_Membre);
  var html = "<h3>"+ville+"</h3>"+pseudos;
  GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowHtml(html);
  });
  return marker;
  
}

/*===== Fonctions pour le calendrier piker =====*/
//Selection d'une date dans le calendrier
function SelectDate_Calendar_Piker(IdCalendar,IdDivDate,IdHiddenDate,DateSelected, ShowMois, ShowAnnee){
    
  //on affiche dans le div des dates la dates sélectionnée
  document.getElementById(IdDivDate).style.display='block';
  var contentDivDates=document.getElementById(IdDivDate).innerHTML;
  document.getElementById(IdDivDate).innerHTML=contentDivDates+"<span id='"+DateSelected+"'>"+DateSelected+" <a href='' class=Bouton_DeleteDate_Calendar_Piker alt='Suprimer la date' Title='Supprimer la date' onclick=\"DeletDate_Calendar_Piker('"+DateSelected+"','"+IdHiddenDate+"'); return false;\"></a></span>";

  //on affiche dans le champ caché les dates sélectionnées
  var ContentHiddenDates=document.getElementById(IdHiddenDate).value;
  document.getElementById(IdHiddenDate).value=ContentHiddenDates+DateSelected+ " ; ";
  
  //on affiche sur le calendar la date séectionnée
  Ajax_OpenCalendar_Piker(IdCalendar,IdDivDate,IdHiddenDate,ShowMois,ShowAnnee);

  //on fait clignoter la nouvelle date
  //new Effect.Highlight(DateSelected);
}


//Fonction de suoression d'une date 
function DeletDate_Calendar_Piker(DateToDelete,IdHiddenDate){

  //on récupère les dates dans le champ caché
  var ContentHiddenDates=document.getElementById(IdHiddenDate).value;
  
  //on crée un tableau des dates sélectionnées
  var TabDates=ContentHiddenDates.split(' ; ');
  
  //initialisation des variables
  var NewListeDates=""; //La nouvelle liste de dates 
  for ( var cptTab=0;cptTab<TabDates.length-1;cptTab++){
    //on test si la date en cours est différente de celle qui doit être supprimée
    if (TabDates[cptTab]!=DateToDelete){
      //On sauvegarde la date
      NewListeDates=NewListeDates+TabDates[cptTab]+ " ; ";
    }
  }

  
  //on remplace l'ancien contenu de la zone cachée par le nouveau
  document.getElementById(IdHiddenDate).value=NewListeDates;
  
  //on supprime dans la div de liste des dates la date à supprimer
  new Effect.Morph(DateToDelete, { style: 'background:#D80019; color: #fff;', duration: 0.8});
  new Effect.Fade(DateToDelete);

}


//Fonction de fermeture d'un calendrier piker
function Close_Calendar_Piker(IdCalendar){

  new Effect.toggle(IdCalendar,'appear');


}

/*===== Fonctions pour le calendrier viewer =====*/
var isExtended = 0;
//Ouverture et fermeture du slide bar du calendar viewer
function SlideSideBar(){
  
	new Effect.toggle('SideBarContents', 'blind', {scaleX: 'true', scaleY: 'false;', scaleContent: true});
	
	if(isExtended==0){
	
    //On met l'image nonactive
    $('SideBarButton').className='On';
		
		
		new Effect.Fade('SideBarContents',
   	{ duration:1.0, from:0.0, to:1.0 });
		
		isExtended++;
		
		//ouverture du calendrier viewver
    Ajax_OpenCalendar_Viewer('ContentCalendar','InfosDate','','');
    
    
	}else{

		//on met l'image active
    $('SideBarButton').className='Off';
    
		new Effect.Fade('SideBarContents',
   	{ duration:1.5, from:1.0, to:0.0 });
		
	  	
		isExtended=0;
	}
}
