// ütf-marker

/* French initialisation for the jQuery UI date picker plugin. */
/* Written by Keith Wood (kbwood{at}iinet.com.au) and Stéphane Nahmani (sholby@sholby.net). */
jQuery(function($){
	$.datepicker.regional['fr'] = {
		closeText: 'Fermer',
		prevText: '&#x3c;Préc',
		nextText: 'Suiv&#x3e;',
		currentText: 'Courant',
		monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
		'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
		monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
		'Jul','Aoû','Sep','Oct','Nov','Déc'],
		dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
		dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
		dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
		weekHeader: 'Sm',
		dateFormat: 'dd/mm/yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	$.datepicker.setDefaults($.datepicker.regional['fr']);
});

var voc = {slideshowStart:"Slideshow",slideshowStop:"Arrêter",current:"{current}/{total}",previous:"précédent",next:"suivant",close:"Fermer",download_file:"Télécharger le fichier"};


var base = {basePath:  lp.substr(0, lp.lastIndexOf('/')),
            mediaPath: lp.substr(0, lp.lastIndexOf('/')) + '/media',
            userPath:  lp.substr(0, lp.lastIndexOf('/')) + '/user',
            locale:    lp.substr(lp.lastIndexOf('/') + 1, lp.length),
            ajaxSetup: {url: lp + '/ajax/',
                        type: 'GET',
                        dataType: 'html'},
                            // settings for the overlay
            overlayOptions: { 
              target: '#gallery', 
              expose: '#000'
            },
            
            // settings for the gallery plugin of overlay
            galleryOptions: {
              speed:    800, 
              autohide: false
              //preload: false
            }
           }
           
var i = 0;
jQuery(document).ready(function() {	
  

  jQuery('span.email').defuscate();

  $('.elements-list, .elements-container .event-listing').jScrollPane({scrollbarWidth:6,showArrows:true});
  
  
  jQuery('#thumbs a').click(function(){ 
    jQuery('#thumbs li').removeClass('active');
    var newSrc = jQuery(this).find('img').attr('src').replace('/small', '/big');
    var i = this.href.substr(0, this.href.lastIndexOf('/')).split('/').pop();
    jQuery(this).parents('li').addClass('active');
    base.img   = new Image();
    base.img.src = newSrc;
    base.img.onload = function() {
      jQuery('#big-pic img').hide().attr('src', newSrc).fadeIn('slow');
    }
    return false;
  }) 
  
  jQuery('a.openFormPopup, #li-newsletter a, #li-reservation a').ajaxFormDialog();

  // Elements listing
  if( jQuery('.elements-list').length > 0 ) {
    jQuery('.elements-list').find('a').click( function(){
      if( ! jQuery(this).hasClass('active') ) {
        jQuery('.elements-list').find('a').removeClass('active');
        jQuery(this).addClass('active');
        jQuery('.elements-container').find('dt').hide( 'fast' );
        jQuery('.elements-container').find('dd').hide( 'fast' );
        var dtId = jQuery(this).attr('href').substring( jQuery(this).attr('href').indexOf( '#' ) );
        jQuery( dtId ).show( 'fast' );
        jQuery( dtId.replace( /dt/ , 'dd' ) ).show( 'fast' );
      }
      return false;
    } );

    // Initialize
    jQuery('.elements-container').find('dt').hide();
    jQuery('.elements-container').find('dd').hide();
    jQuery('.elements-container').find('dt.active').show();
    jQuery('.elements-container').find('dd.active').show();
  }

  // Popups
  jQuery('.elements-container').find('dd').find('.img-overlay').overlay( {
    expose: {
      color: '#000000' ,
      loadSpeed: 200 ,
      opacity: 0.5
    } ,
    //effect: 'apple' ,
    left: 'center' ,
    top: 50
  } );

  // Initialize
  jQuery('.popup-container').css({padding: '20px', background: '#333333'}).hide();
  jQuery('a[rel=gallery]').colorbox(voc)

});

  // datepicker
  jQuery.datepicker.setDefaults(jQuery.datepicker.regional['fr']);

//attaches the ajax form action to a link
jQuery.fn.ajaxFormDialog = function() {
  return this.click(function() { 
          
    //get the link target
    var linkTarget = this.href;
    if(!linkTarget) {
      return;
    }   
    
    //settings for form ajax submit
    var ajaxSubmitOptions = {};
    ajaxSubmitOptions.dataType = 'json';
    ajaxSubmitOptions.success = function(data) {
      //the element type contains the type of the return - either error or success
      if(data.msgType == 'error' && data.content) {
        var errorMsg = '';        
        //highlight erroneous form fields
        var formElements = ajaxSubmitOptions.currentForm.elements;
        var len = formElements.length;
        for(var i = 0; i < len; i++) {
        	// don't consider cloned
        	if(!formElements[i].name) {
        		continue;
        	}        	
        	var jElem = jQuery(formElements[i]);
        	jElem.removeClass('error');
          if(formElements[i].clone){
            jQuery(formElements[i].clone).removeClass('error');
          }        	 
          if(data.content[formElements[i].name]) {
            jElem.addClass('error');
            if(formElements[i].clone){
              jQuery(formElements[i].clone).addClass('error');
            }
          }
        };
        
        for(var fieldName in data.content) {                    
          errorMsg += '<li>' + data.content[fieldName] + '</li>';
        }
        if(errorMsg) {
          errorMsg = '<ul class="error">' + errorMsg + '</ul>'
        }
        var formElem = jQuery('#popup-container form');
        var errorUl = formElem.find('ul.error');
        if(errorUl.length) {
          errorUl.replaceWith(errorMsg);
        }
        else{
          formElem.prepend(errorMsg);
        }
      }
      else {
        //success message   
        var popupCont = jQuery('#popup-container');
        popupCont.find('.inner').html(data.content).positionPopup();
      }
    };
    //end of ajaxSubmitOptions
    
    
    //settings for the overlay
    var overlayOptions = {};
    overlayOptions.expose = {color: '#000',
                             loadSpeed: 200,
                             opacity: 0.5,
                             maskId: 'overlay'};
    overlayOptions.closeOnClick = false;
    overlayOptions.api = true;
    overlayOptions.close = true;
    overlayOptions.onClose = function() {
      jQuery('#popup-container').removeClass('has-content');
    }
    overlayOptions.onLoad = function() {
      jQuery('#popup-container').css('z-index', 91);
      jQuery('#overlay').css('z-index', 90);
    }
    //end of overlay settings
    
    
    //remove any old overlay and popup container
    var oldOverlay = document.getElementById('overlay');
    if(oldOverlay) {
      oldOverlay.parentNode.removeChild(oldOverlay);
      jQuery('#popup-container').remove();
    }
    
    //create the container holding the popup and init the overlay
    var popupCont = jQuery('<div id="popup-container"><div class="inner"></div>&nbsp;</div>').appendTo(document.body);    
    popupCont.overlay(overlayOptions).load();
       
    //now make an ajax request to get the form and put the form in the container
    var ajaxOptions = {url: linkTarget,
       success: function(data) {
       	
         popupCont.addClass('has-content')
                  .find('.inner').append(data).positionPopup();
         var formElement =  popupCont.find('form');
         formElement.find('.time').timePicker24({clearField : 'Effacer',hours: 'Heures'});
         jQuery('#dob-add').mask('99/99/99?99').hint();
         formElement.find('#newsletter-accept').change(function(){
         	jQuery('#wrapper-dob-add').toggle('fast');
         });
         
         //add date input mask (must be before ajax submit, otherwise the hint is not removed)
         //.find('.time').timePicker24({clearField : 'Effacer'})
         //formElement.find('.date').mask('99/99/99?99').hint().end()
         formElement.find('.date')
         .datepicker().end()
         
         //add ajax submit         
          .submit(function() { 
         	
           ajaxSubmitOptions.currentForm = this;
           jQuery(this).ajaxSubmit(ajaxSubmitOptions); 
           
           return false;
         })         
       },
       error: function() {
       }
    };
      
    jQuery.ajax(ajaxOptions);
    
    return false;
  });
}

jQuery.fn.positionPopup = function() {
  return this.each(function() {    
    var jThis    = jQuery(this);   
        
    //get the width of the inner item 
    var newWidth = jThis.width();
    
    var popupOuter = jThis.parent();
   
    //center the popup
    var newLeftPos = ((popupOuter.parent().width()/2) - (newWidth/2)) + 'px';
        popupOuter.css({position:'absolute',
                        left: newLeftPos,
                        width: newWidth + 'px'});
    
    //assign the closer    
    jThis.find('.close').unbind('click').click(function() {
      popupOuter.overlay().close();
      return false;
    });
    
  });
}
