/*  Le Phare JavaScript library - (c) 2009
/*--------------------------------------------------------------------------*/

var Loader = Class.create({
   initialize: function(element) {
      if($(element)) {
         this.idBody = element;
         this.registerGenerics();  // call generics f°
         this.registerSpecifics(); // call specificsf°
      }
      else {
         alert('ATTENTION\nLa balise body n\'a pas d\'id !');
      }
   },

   registerGenerics: function() {
         //maFonctionGeneriques();
   },

   registerSpecifics: function() {
         switch (this.idBody) {
            case 'pageFaq':
               showFirstFaq();
            break;
            case 'pageContact':
               initGmap();
            break;
            case 'pageCreaAssociation' :
            case 'pageNewsletter':
               initContact();
            break;


            case 'pageAccompagnement':
            case 'pageCreaEntreprise' :
               initContact();


               Event.observe('typeFrance', 'click', function() {
                  if ($('typeFrance').selected="selected") {
                     $('jsForm').hide();
                     $('jsMsg').show();
                  }
               });
               Event.observe('typeOther', 'click', function() {
                  if ($('typeOther').selected="selected") {
                     $('jsForm').show();
                     $('jsMsg').hide();
                  }
               });
            break;

            case 'pageDesabonnement':
               initDesinscription();
            break;
            case 'pageListeMembres':
            case 'pageListeLaureats':
               initSearch();
            break;
         }
   }
});




// load
Event.observe(window, 'load', function() {
   var loader = new Loader(document.body.id);
});

/*--------------------------------------------------------------------------*/

function showFirstFaq()
{
   $$('.jsReponse')[0].show();
}

function initContact()
{
   var zeForm = new Validation('zeForm', {
      useTitles:true,   // pour utiliser les titles des champs comme message d’erreur
      stopOnFirst:true, // arête à la premiere erreur
      onFormValidate:  // definie la function qui permet d’empeche l’envoie du form sans js et donc sans verif
         function() {$('todo').value ="submit_quest";}
      });

   if($('searchSubmitter')) {
      Event.observe('searchSubmitter', 'click', function() {$('searchTodo').value = "search_email"; $('searchEmailForm').submit();});
   }

   if($('errMsg')) {
      if($('errMsg').innerHTML  != '') {
         Element.show('errMsg'); Effect.BlindUp('errMsg', {delay:3});
      }
   }
}

function initDesinscription()
{
   var zeForm = new Validation('auth', {
      useTitles:true,   // pour utiliser les titles des champs comme message d’erreur
      stopOnFirst:true, // arête à la premiere erreur
      onFormValidate:  // definie la function qui permet d’empeche l’envoie du form sans js et donc sans verif
         function() {$('todo').value = "unsub";}
      });
}

function initGmap()
{
   if (center_on_asso) {
      var latlng = new google.maps.LatLng(asso_lat,asso_lng);
      var zoom = 6;
   } else {
      var latlng = new google.maps.LatLng(45.446947, -4.700333);
      var zoom = 4;
   }

   var myOptions = {
      zoom: zoom,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
   };
   var map = new google.maps.Map(document.getElementById("googleMap"), myOptions);
   var mc = new MarkerClusterer(map,[],{
      maxZoom: zoom,
      styles: [{
        url: '/ms/_medias/pictoGoogle.png',
        height: 35,
        width: 35,
        opt_anchor: [16, 0],
        opt_textColor: '#ff00ff',
        opt_textSize: 10
      }]
   });
   var infoWindow = new google.maps.InfoWindow;
   // Creating a LatLngBounds object
   var bounds = new google.maps.LatLngBounds();

   downloadUrl(markers_file, function(data) {
      var xml = parseXml(data);
      var markers = xml.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markers.length; i++) {
         if (markers[i].text)
            var attrs = markers[i].text;
         else
            var attrs = markers[i].textContent;

         var type = markers[i].getAttribute("type");
         var name = markers[i].getAttribute("name");
         var zindex = parseInt(markers[i].getAttribute("zoom"));
         var icon = customIcons[type] || {};

         var point = new google.maps.LatLng(
            parseFloat(markers[i].getAttribute("lat")),
            parseFloat(markers[i].getAttribute("lng")));

         bounds.extend(point);
         var marker = new google.maps.Marker({
            map: map,
            position: point,
            icon: icon.icon,
            shadow: icon.shadow,
            zIndex: zindex
         });
         mc.addMarker(marker);
         bindInfoWindow(marker, map, infoWindow, attrs);

      }
      if (!center_on_asso)  map.fitBounds(bounds);
   });

}

function initSearch()
{
   //Javascript gérant la recherche
   if ($('jsSearchTrigger'))
   {
      Event.observe($('jsSearchTrigger'), 'click', function(){goto_list('search',url_lst_script); }, false);
      Event.observe($('search'), 'keypress', function(e){ if(e.keyCode == Event.KEY_RETURN) { goto_list('search',url_lst_script); }; }, false);
   }

   $$('.jsSort').each(function(item){
      item.observe('click',function(){
         change_order(item.id);
      });
   });
}

function goto_list(todo,url_lst_script) // gestion fleches page suivante/precedente
{
 $('form1').action=url_lst_script;
 $('form1').todo.value=todo;
 $('form1').submit();
}

function change_order(order_field)
{
 if (order_field != '')
 {
    $('todo').value = "chg_order";
    $('order_field').value = order_field;
    $('form1').action=url_lst_script;
    $('form1').submit();
 }
}

