﻿/* ---------------------------------------------------------------
   Author : Remi Palard
   January 2012
   remi.palard@gmail.com
--------------------------------------------------------------- */

// Globals

/* --------------------------------------------------------------- */

$(document).ready(function() {

  /* ------------------------------- */

  if ($("#criteria-seek-form").length) {
    $('#criteria-seek-form :input').each(function() {
      $(this).change(function() {
        search.color(this);
      });
      search.color(this);
    });

    // Multiselect tags
    $("#litags .multiple").multiselect({
      selectedList: 3,
      checkAllText: 'Tout Cocher',
      uncheckAllText: 'Tout DéCocher',
      noneSelectedText: 'Mots clefs',
      selectedText: '# tags',
      autoOpen: false
    });
    $("#litags").show();
    
    // Multiselect jobs
    $("#lijobs .multiple").multiselect({
      selectedList: 3,
      checkAllText: 'Tout Cocher',
      uncheckAllText: 'Tout DéCocher',
      noneSelectedText: 'Métiers',
      selectedText: '# jobs',
      autoOpen: false
    });
    $("#lijobs").show();    
    
    // Multiselect jobs
    $("#listatus .multiple").multiselect({
      selectedList: 3,
      checkAllText: 'Tout Cocher',
      uncheckAllText: 'Tout DéCocher',
      noneSelectedText: 'Status',
      selectedText: '# status',
      autoOpen: false
    });
    $("#listatus").show();      
  }  

  /* ------------------------------- */

  if ($("#sortable").length) {

    // Create sortable list for cards
    $("#sortable").sortable({
      opacity:0.5,
      placeholder: 'ui-state-highlight',
      handle:'.handle',
      tolerance:'pointer',
    	update: function(event, ui) {
    		//var order = $('#sortable').sortable('serialize').split("&").reverse().join("&");
    		var order = $('#sortable').sortable('toArray');
        $.ajax({
          type: "POST",
          url: ROOT_URL + "index.php",
          data: {'ajax':'orderCasting','order':order},
          success: function(response) {},
          error: function() {
            jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
          }
        });
    	}
    });
    $( "#sortable" ).disableSelection();

    // Create draggable element
    $( "#sortable .handle-add" ).draggable({ revert:true});

    // Create
		$( "#droppable li" ).droppable({
			activeClass: "ui-state-default",
			hoverClass: "on",
			accept: '#sortable .handle-add',
			drop: function( event, ui ) {
			  var casting = $(this).attr('id').replace('drop-','');
        var comedien = ui.draggable.attr('id').replace('drag-','');
        castblock = this;
        $.ajax({
          type: "POST",
          url: ROOT_URL + "index.php",
          data: {'ajax':'addToCasting','idcast':casting,'idcom':comedien},
          success: function(response) {
            nb = parseInt($('.nbcast',castblock).html()) + parseInt(response);
            $('.nbcast',castblock).html(nb);
            $(castblock).effect("pulsate", { times:1 }, 400);
          },
          error: function() {
            jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
          }
        });
			}
		});
  }

  /* ------------------------------- */
  
  // Lightbox
  jQuery.extend($.fn.ceebox.videos, {
 
 	flv: {
      siteRgx : /\/data\//i, 
      idRgx: /.*/i,
      src : STATICS + "swf/player.swf",
      flashvars : {file:"[id]",autostart:'1'}	  
    }
  });  
  $('.ceebox').ceebox({animSpeed:"fast"});

  /* ------------------------------- */

  // Edit castings
  if ($('#castings').length) {
    var editparams = {
      method:'POST',
      cancel: 'Annuler',
      submit: 'OK',
      cssclass: 'editform',
      indicator: '<img src="'+ STATICS +'images/indicator.gif">',
      tooltip: 'Cliquer pour modifier...',
      placeholder: '<span class="empty">Modifier ici</span>',
      submitdata : function(value, settings) {
        var selectText = $("option:selected", this).text();
        return {ajax:'editCasting','selectText': selectText,'oldvalue':value};
      },
      onerror: function (settings, original, xhr) {
        original.reset();
        jAlert(xhr.responseText, 'Attention');
      }
    };
    $('#castings .editcasting').editable(ROOT_URL + 'index.php',editparams);
  }

  /* ------------------------------- */

  // Menu
  $('#menu .menu').each(function(i){

    $(this).mouseover(function() {
      p = this.className.split(' ').slice(-1).toString().replace('-off','').replace('-on','');
      $(this).addClass(p + '-hover');
    });

    $(this).mouseout(function() {
      p = this.className.split(' ').slice(-1).toString().replace('-hover','');
      $(this).removeClass(p + '-hover');
    });
  });  

  /* ------------------------------- */  
  
	// Tooltip	
	$('.tooltip').mouseover(function(e) {
		var tip = $(this).attr('title');	
		
		//Remove the title attribute's to avoid the native tooltip from the browser
		$(this).attr('title','');
		
		//Append the tooltip template and its value
		$(this).append('<div id="tooltip"><div class="tipBody">' + tip + '</div></div>');		
		$('#tooltip').fadeIn('500');
		$('#tooltip').fadeTo('10',0.9);		
	}).mousemove(function(e) {
		//Keep changing the X and Y axis for the tooltip, thus, the tooltip move along with the mouse
		//$('#tooltip').css('top', e.pageY + 10 );
		//$('#tooltip').css('left', e.pageX + 20 );		
	}).mouseout(function() {	
		$(this).attr('title',$('.tipBody').html());
		$(this).children('div#tooltip').remove();		
	});  

  /* ------------------------------- */

  // Rollover
  $('img.dynamic,input.dynamic').each(function(index){

    $(this).mouseover(function() {
      this.src = this.src.substring(0,this.src.lastIndexOf('.')) + '-over' + this.src.substring(this.src.lastIndexOf('.'));
    });

    $(this).mouseout(function() {
      this.src = this.src.replace('-over','');
    });
  });
  
  /* ------------------------------- */

  // Edit in place
  if ($('#profile').length) {
    var editparams = {
      method:'POST',
      cancel: 'Annuler',
      submit: 'OK',
      cssclass: 'editform',
      indicator: '<img src="'+ STATICS +'images/indicator.gif">',
      tooltip: 'Cliquer pour modifier...',
      placeholder: '<span class="empty">Modifier ici</span>',
      maxlength: 255,
      submitdata : function(value, settings) {
        var selectText = $("option:selected", this).text();
        return {ajax:'saveProfile','selectText': selectText,'oldvalue':value};
      },
      onerror: function (settings, original, xhr) {
        original.reset();
        jAlert(xhr.responseText, 'Attention');
      }
    };
 
    /* ------------------------------- */
    
    var editparamsdate = $.extend({},editparams,{type:'selectdate'});
    var editparamsarea = $.extend({},editparams,{type:'textarea',cols:30,rows:4});
    var editparamshair = $.extend({},editparams,{type:'select',data:HAIR});
    var editparamseyes = $.extend({},editparams,{type:'select',data:EYES});
    var editparamsnation = $.extend({},editparams,{type:'select',data:NATION});
    var editparamsnaissance = $.extend({},editparams,{type:'select',data:NAISSANCE});    
    var editparamsnaked = $.extend({},editparams,{type:'select',data:NAKED});
    var editparamssex = $.extend({},editparams,{type:'select',data:SEX});
    var editparamspermis = $.extend({},editparams,{type:'select',data:PERMIS});
    var editparamsvehicule = $.extend({},editparams,{type:'select',data:VEHICULE});    
    var editparamsaddress = $.extend({},editparams,{type:'textarea',cols:25,rows:3});    
    var editparamscities = $.extend({},editparams,{type:'select',loadurl : ROOT_URL +'index.php?ajax=getCities'});
    

    $('#profile .edit').editable(ROOT_URL + 'index.php',editparams);
    $('#profile .edit-date').editable(ROOT_URL + 'index.php',editparamsdate);
    $('#profile .edit-area').editable(ROOT_URL + 'index.php',editparamsarea);
    $('#profile .edit-hair').editable(ROOT_URL + 'index.php',editparamshair);
    $('#profile .edit-eyes').editable(ROOT_URL + 'index.php',editparamseyes);
    $('#profile .edit-nation').editable(ROOT_URL + 'index.php',editparamsnation);
    $('#profile .edit-pays-naissance').editable(ROOT_URL + 'index.php',editparamsnaissance);    
    $('#profile .edit-naked').editable(ROOT_URL + 'index.php',editparamsnaked);
    $('#profile .edit-sex').editable(ROOT_URL + 'index.php',editparamssex);
    $('#profile .edit-permis').editable(ROOT_URL + 'index.php',editparamspermis);
    $('#profile .edit-vehicule').editable(ROOT_URL + 'index.php',editparamsvehicule);    
    $('#profile .edit-cities').editable(ROOT_URL + 'index.php',editparamscities);
    $('#profile .edit-address').editable(ROOT_URL + 'index.php',editparamsaddress);  
  }

  /* ------------------------------- */

  // Multiselect grocast
  if ($("#admin-block").length) {

    $("#admin-block .adminTags").show().multiselect({
      selectedList: 3,
      checkAllText: 'Tout Cocher',
      uncheckAllText: 'Tout Décocher',
      noneSelectedText: 'Selection de tag',
      selectedText: '# tags',
      create: function(){ tags.init(); },
      close: function(event, ui){ tags.save(); }
    });
  }

  // Change pass in profile
  if ($("#config-block").length) {
    // Accordion
    acc = $("#config-block").accordion({collapsible: true,active: false,navigation: true });
    $("#config-block").css({visibility: "visible"});
  }

  /* ------------------------------- */
  
  // Classifieds
  if (typeof (ClassifiedStart) !== 'undefined' && ClassifiedStart > 0) classifieds.open(ClassifiedStart,true);
  
}); // Document ready

/* --------------------------------------------------------------- */

function redirect(URL) {
  document.location.href = URL;
  return false;
}

/* --------------------------------------------------------------- */

function redirect_with_confirm(URL) {
  jConfirm('Etes-vous s&ucirc;r de vouloir continuer ?','Confirmation',function(r) {
      if (r) redirect(URL);
  });
  return false;
}

/* --------------------------------------------------------------- */

var subscription = {
  add :function() {
    f = $('#addSubForm').valid();
    if (f) $('addSubForm').submit();
    else jAlert('Le formulaire comporte des erreurs','Attention');
  },
  
  /* ------------------------------- */

  remove : function(l) {
    $('#rowsub-' + l).html('<img src="'+ STATICS +'images/indicator.gif">');
    $.ajax({
      type: "POST",
      url: ROOT_URL + "index.php",
      data: "ajax=removeSub&id="+l,
      success: function(response) {
        $('#rowsub-' + l).remove();
      },
      error: function() {
        jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
      }
    });
  }
}

/* --------------------------------------------------------------- */

var casting = {
  add :function() {
    f = $('#addCastingForm').valid();
    if (f) $('addCastingForm').submit();
    else jAlert('Le formulaire comporte des erreurs','Attention');
  },

  /* ------------------------------- */

  remove : function(l) {
    $('#rowcast-' + l).html('<img src="'+ STATICS +'images/indicator.gif">');
    $.ajax({
      type: "POST",
      url: ROOT_URL + "index.php",
      data: "ajax=removeCasting&id="+l,
      success: function(response) {
        $('#rowcast-' + l).remove();
      },
      error: function() {
        jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
      }
    });
  },

  /* ------------------------------- */

  change: function(sel,id) {
    var status = $(sel).val();
    $.ajax({
      type: "POST",
      url: ROOT_URL + "index.php",
      data: {'ajax':'changeCasting','id':id,'status':status},
      success: function(response) {},
      error: function() {
        jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
      }
    });
  },

  /* ------------------------------- */

  removeFromCasting: function(idcom) {
    jConfirm('Etes-vous sur de vouloir supprimer ce comedien du casting ?','Confirmation',function(r) {
      if (r) {        
        $.ajax({
          type: "POST",
          url: ROOT_URL + "index.php",
          data: {'ajax':'removeFromCasting','idcom':idcom},
          success: function(response) {    
            
            // Remove card
            $('#card-' + idcom).remove(); 
                               
            // Decrease com number         
            nbr = parseInt($('#nbr').text()) -1;
            var nbc = nbr + ' comedien' + ((nbr > 1) ? 's' : '');
            $('#nbr').text(nbc);
            if (nbr == 0) $('#sortable').html('<li id="nores" class="emptycard">Aucun comédien dans ce casting</li>')            
            
            // Update casting number
            $('#drop-' + response + ' .nbcast').html(nbr);

          },
          error: function() {
            jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
          }
        });
      }
    });
  }
};

/* --------------------------------------------------------------- */

var card = {
  pos: 0,
  delta: 65,
  delay: 300,
  nbel: 0,

  /* ------------------------------- */

  toggle: function(el) {
    if ($('#' + el + ' .card').hasClass('mode-open')) {
      $('#' + el + ' .card-open').slideUp();
      $('#' + el + ' .card').removeClass('mode-open');
      $('#' + el + ' .btns').show();
    } else {
      if ($.browser.msie) $('#' + el + ' .card-open').show();
      else  $('#' + el + ' .card-open').slideDown();
      $('#' + el + ' .card').addClass('mode-open');
      $('#' + el + ' .btns').hide();
    }
  },

  /* ------------------------------- */

  img: function(id,url,link) {

    // Add active class
    $('#card-' + id + ' .thumbs li').removeClass('active');
    $(link).parent().addClass('active');

    // Switch image
    $("#image-"+id).attr("src",url);
  },

  /* ------------------------------- */

  nav: function(m,id) {
    m = parseFloat(m);
    sign = (m >0) ? '-' : '+';

    // Get max elements
    if (this.nbel == 0) this.nbel = $('#card-'+ id +' ul.thumbs li').length;

    // Test limits : 3 always visible
    this.pos = this.pos + m;
    if (this.pos < 0 || this.pos >= (this.nbel-4)) {
      this.pos = this.pos - m;
      return false;
    }

    // Carousel
    $('#card-'+ id +' ul.thumbs').animate(
      {top: sign + '='+ this.delta +'px'},
      {duration : this.delay}
    );
  },

  /* --------------------------- */

  tabs: function(id,tab,target) {
  	//Remove any "active" class
		$('#card-'+id+' .medias a').removeClass("selected");

		//Add "active" class to selected tab
		$(tab).addClass("selected");

		//Hide all tab content
		$('#card-'+id+' .viewer .search-tab-content').hide();

    //Fade in the active ID content
		var activeTab = $('#card-'+id+' .tab-' + target);
		$(activeTab).fadeIn();
		return false;
  },

  /* ------------------------------- */

  popitup : function(url) {
  	nw = window.open(url,'name','height=400,width=800,menubar=yes,scrollbars=yes,resizable=yes,status=no,toolbar=no,location=no,directories=no');
  	if (window.focus) {nw.focus();}
  	return false;
  }

  /* ------------------------------- */
};

/* --------------------------------------------------------------- */

var search = {
  def: 'Recherche par mots clefs',

  /* ------------------------------- */

  clear: function(el) {
    if ($(el).val() == this.def) $(el).val('');
  },

  /* ------------------------------- */

  restore: function(el) {
    if ($(el).val() == '') $(el).val(this.def);
  },

  /* ------------------------------- */

  color : function(el) {
    var id = $(el).attr('id');
    var multiple = (id.indexOf('-inf') > -1 || id.indexOf('-sup') > -1);
    var t = id.replace('-sup','-inf');

    // Search label
    var label = $("label[for='" + t +"']");
    if (! label.length) return false;
    var active = false;
    var active2 = false;

    // Get input type
    if ($(el).is('input')) {
      var t = $(el).attr('type');
      if (t == 'text') active = ($(el).val() != '');
      else active = ($(el).is(':checked'));
    } else {
      // Select
      active = ($('#'+t).val() != '' && $('#'+t).val() != '---');
      if (multiple) active2 = ($('#'+t.replace('inf','sup')).val() != '' && $('#'+t.replace('inf','sup')).val() != '---');

    }

    // Assign class to label
    if (active || active2 ) {
      if (! label.hasClass('on') ) label.addClass('on');
    } else {
      label.removeClass('on');
    }
  },

  /* ------------------------------- */

  showCriterias: function() {
    $('#criteria-seek').hide();
    $('#criteria-seek-form').show();

    // Hidden form advanced search checkpoint
    $('#advanced').val(1);
  },

  /* ------------------------------- */

  hideCriterias: function() {

    // Blank form
    $('#criteria-seek-form :input').not(':button, :submit, :reset, :hidden').each(function() {
      $(this).val('').removeAttr('checked').removeAttr('selected');
      search.color(this);
    });

    // Blank tags
    $("#criteria-seek-form .multiple").multiselect("uncheckAll");

    // Set advanced to false
    $('#advanced').val('');

    // Slide up
    $('#criteria-seek-form').slideUp('fast',function() {
      // Display opener
      $('#criteria-seek').show();
    });
  }
};

/* --------------------------------------------------------------- */

var popup = {
  pos: {img:0,vid:0,son:0},
  delay: 300,
  nbel: 0,
  
  /* ------------------------------- */  
  
  tabs: function(id,tab,target) {

  	//Remove any "active" class
		$('#userblock .medias li').removeClass("selected");

		//Add "active" class to selected tab
		$(tab).parent('li').addClass("selected");

		//Hide all tab content
		$('#userblock .tab').hide();

    //Fade in the active ID content
		var activeTab = $('#userblock .tab-' + target);
		$(activeTab).fadeIn();
		return false;
  },
  
  /* ------------------------------- */  
  
  nav: function(m,tab,delta) {
    m = parseFloat(m);
    sign = (m > 0) ? '-' : '+';
    nbvisible = (delta == 124) ? 2 : 4;

    // Get max elements
    this.nbel = $('#userblock .tab-' + tab + ' ul.thumbs li').length;    

    // Test limits : 3 always visible
    this.pos[tab] = this.pos[tab] + m;   
    if (this.pos[tab] < 0 || this.pos[tab] > (this.nbel - nbvisible)) {
      this.pos[tab] = this.pos[tab] - m;
      return false;
    }

    // Carousel
    $('#userblock .tab-' + tab + ' ul.thumbs').animate(
      {left: sign + '='+ delta +'px'},
      {duration : this.delay}
    );
  },
  
  /* ------------------------------- */  
  
  img: function(id,url,link) {

    // Add active class
    $('#popup-right .thumbs li').removeClass('active');
    $(link).parent().addClass('active');

    // Switch image
    $("#image-"+id).attr("src",url);
  } 
}


/* --------------------------------------------------------------- */

var user = {
  add: function() {
    f = $("#adduserForm").valid();
    if (f) {
      $("#adduserForm").submit();
    } else {
      jAlert('Le formulaire comporte des erreurs','Attention');
      return false;
    }
  },
  
  /* ------------------------------- */  
  
  changepass: function() {
    f = $("#edituserForm").valid();
    if (f) {
      $("#edituserForm").submit();
    } else {
      jAlert('Le formulaire comporte des erreurs','Attention');
      return false;
    }
  },  
  
  /* ------------------------------- */  

  remove : function(l) {
    $('#rowuser-' + l).html('<img src="'+ STATICS +'images/indicator.gif">');
    $.ajax({
      type: "POST",
      url: ROOT_URL + "index.php",
      data: "ajax=removeUser&id="+l,
      success: function(response) {
        $('#rowuser-' + l).remove();
      },
      error: function() {
        jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
      }
    });
  },  
  
  /* ------------------------------- */    
  
  checkEmail: function(email) {
    $.ajax({
      type: "POST",
      url: ROOT_URL + 'index.php',
      data:'ajax=checkEmail&email=' + email,
      success: function(response){
        if (response.inbase == 'yes') {
          $('#_email').val('');
          jAlert('Cet email est d&eacute;j&agrave; utilis&eacute;','Attention');
        }
      }
    });  
  }
  
};

/* --------------------------------------------------------------- */

var classifieds = {
  
  /* ------------------------------- */  
  
  open: function(id,sc) {
    if (typeof(sc) !== 'undefined') {
      scrollToId('#classified-block-' + id);
    }
    $('#classified-' + id).toggle('fast');
  }, 
  
  /* ------------------------------- */  
  
  publish: function() {
    f = $("#classifiedForm").valid();
    if (f) {
      $("#classifiedForm").submit();
    } else {
      jAlert('Le formulaire comporte des erreurs','Attention');
      return false;
    }    
  },
  
   /* ------------------------------- */  
  
  delete_item: function(id) {
   jConfirm('Etes-vous sûr de vouloir supprimer cette annonce ?','Confirmation',function(r) {
    if (r) redirect(ROOT_URL + '?do=classifieds&action=delete&id=' + id);
   });
   return false;
  },
  
  /* ------------------------------- */  
  
  teaser: function(level) {
    if (level == 0) jAlert('Vous devez etre connecté pour accéder aux contenus.');     
    if (level > 0) jAlert('Vous devez etre membre pour accéder à ce contenu');    
    if (level > 10) jAlert('Vous devez etre membre privilege pour accéder à ce contenu');     
  },
  
  /* ------------------------------- */  
  
  update_status: function(id, id_user) {     
    jConfirm('Etes-vous sûr de vouloir continuer (un email est envoyé à la confirmation) ?','Confirmation',function(r) {
      if (r) {    
      	var status = $('#status_classifieds_' + id).val();
		$.ajax({
            type: "POST",
            url: ROOT_URL + 'index.php',
            data:'ajax=updateStatusClassifieds&id='+id+'&id_user='+id_user+'&status='+status,
            success: function(response){
              if(response == 1) jAlert('Le statut de l\'annonce a été modifié','Bravo');
              else if(response == 2) jAlert('Vous n\'avez pas le droit de passer une annonce validée ou refusée en statut en attente.','Warning');
              else jAlert('Une erreur est survenue','Warning');
            }
        });
      }
    });
  },
  
  /* ------------------------------- */  
  
  update_access: function(id, id_user) {     
  	var access = $('#access_classifieds_' + id).val();  	
  	$.ajax({
        type: "POST",
        url: ROOT_URL + 'index.php',
        data:'ajax=updateAccessClassifieds&id='+id+'&id_user='+id_user+'&access='+access,
        success: function(response){
          if(response == 1) jAlert('L\'accès à l\'annonce a été modifié','Bravo');
          else jAlert('Une erreur est survenue','Warning');       
        }
    });
  }
};

/* --------------------------------------------------------------- */

var menu = {
  open: function(el) {
    var t = '#menu-' + el;
    $('#menu-content .menu-element').each(function(i){
      if($(this).attr('id') != 'menu-' + el){
        $(this).hide();
      }   
    });
    if ($(t).is(":hidden")) {
      $(t).slideDown("slow");
    } else {
      $(t).slideUp();
    }
  }  
};

/* --------------------------------------------------------------- */

var cpop = {
  pos: 0,
  
  /* --------------------------- */    
  
  start: function(id) {      
    $.ajax({
      type: "POST",
      url: ROOT_URL + 'index.php',
      data:'do=popup-user&iduser=' + id,
      success: function(response){
        $('#ph').html(response).lightbox_me({
          centered: true, 
          onLoad: function() { 
            Cufon.replace('#ph .cufon');
            $('#popup-previous,#popup-next').hide();
          }
        });  
      }
    });
  }
  
  /* --------------------------- */    
}
  
/* --------------------------------------------------------------- */

var npop = {
  pos: 0,
  
  /* --------------------------- */    
  
  start: function(id) { 
    this.pos = Idlist.findIndex(id);     
    $.ajax({
      type: "POST",
      url: ROOT_URL + 'index.php',
      data:'do=popup-user&iduser=' + id,
      success: function(response){
        $('#ph').html(response).lightbox_me({
          centered: true, 
          onLoad: function() { 
            Cufon.replace('#ph .cufon');
          }
        });  
      }
    });
  },
  
  /* --------------------------- */  
  
  to_print: function(iduser) {
    window.open('?do=print-user&iduser='+iduser,'print-user','menubar=no, scrollbars=no, top=100, left=100, width=650, height=500');
  },
  
  /* --------------------------- */  
  
  close: function() {
    $('#ph').trigger('close');    
  },
  
  /* --------------------------- */  
  
  nav: function(dir) {
    if (dir == 'n') this.pos++;
    else this.pos--;
      
    if (this.pos < 0) this.pos = Idlist.length-1;
    if (this.pos >= Idlist.length) this.pos = 0;    
      
    // Get id
    id = Idlist[this.pos];
    
    $.ajax({
      type: "POST",
      url: ROOT_URL + 'index.php',
      data:'do=popup-user&iduser=' + id,
      success: function(response) {     
        $('#ph').fadeOut("fast", function() {
          $(this).html(response);
          Cufon.replace('#ph .cufon');
          $('#ph').fadeIn("fast");
        });                
      }
    });        
  }
  
  /* --------------------------- */
};

/* --------------------------------------------------------------- */

var email_pop_user = {
  
  // Cas email recherche ou email sur profil
  start: function(id) {          
    if ( $('#popup-email').is(':visible') ) {
      $('#popup-email').hide();
      $('#userblock').show('fast');      
    } else {
      $.ajax({
        type: "POST",
        url: ROOT_URL + 'index.php',
        data:'do=popup-email-user&iduser=' + id,
        success: function(response) {
          $('#userblock').hide();          
          $('#popup-email').html(response).show('fast',function() {            
            Cufon.replace('#ph .cufon');          
          });
        }
      });      
    }
  },
  
  /* --------------------------- */  
  
  close: function() {
    $('#ph').trigger('close');    
  }  
};

/* --------------------------------------------------------------- */

var popup_lightbox = {
  
  /* --------------------------- */
  
  // Cas popup
  start: function(url, tab_vars) {          
    
	var plus_url = '';
	for (var i in tab_vars) {
		plus_url = '&' + i + '=' + tab_vars[i];
	}
	
	if( $('#'+url).is(':visible') ) {
      $('#'+url).hide('fast');
    } else {
      $.ajax({
        type: "POST",
        url: ROOT_URL + 'index.php',
        data:'do=' + url + plus_url,
        success: function(response){
          $('#ph').html(response).lightbox_me({
          centered: true, 
          onLoad: function() { 
            Cufon.replace('#ph .cufon');
          }
        });

        }
      });      
    }
  },
  
  /* --------------------------- */  
  
  close: function() {
    $('#ph').trigger('close');    
  }  
  
  /* --------------------------- */  
};

/* --------------------------------------------------------------- */

var icon = {
  toggle: function(el,cl) {
    if ($(this).hasClass(+ cl + '-on')) $(el).addClass(cl + '-off').removeClass(cl + '-on');
    else $(el).addClass(cl + '-on').removeClass(cl + '-off');     
  }
};

/* --------------------------------------------------------------- */

var tags = {
  lastchecked: '',
  init: function() {
    $('#tags-choice').show();
  },
  save: function() {
    var checkedValues = $("#admin-block .adminTags").multiselect("getChecked").map(function(){
      return this.value;
    }).get().join(",");

     // Avoid unuseful ajax call
    if (checkedValues != this.lastchecked) {
      this.lastchecked = checkedValues;
      $.ajax({
        type: "POST",
        url: ROOT_URL + "index.php",
        data: "ajax=saveTags&tags="+checkedValues,
        error: function() {}
      });

    }
  }
};

/* --------------------------------------------------------------- */

var login = {
  checkEmail: function(email) {
    $.ajax({
      type: "POST",
      url: ROOT_URL + 'index.php',
      data:'ajax=checkEmail&email=' + email,
      success: function(response){
        if (response.inbase == 'yes') {
          $('#email').val('Cet email est deja utilisé');
        }
      }
    });
  },
  
  /* --------------------------- */  
  
  clean: function(el) {
    jQuery(el).val('');    
  },
  
  /* --------------------------- */  
  
  reinit: function(el) {
    if (jQuery(el).val() == '') {
      jQuery(el).val('Email ou login Almacis')
    }   
  },  

  /* --------------------------- */

  register: function() {
    f = $("#registerForm").valid();
    if (f) {
      if (this.validateCaptcha()) {
        $("#registerForm").submit();
      }
    } else {
      jAlert('Le formulaire comporte des erreurs','Attention');
      return false;
    }
  },

  /* --------------------------- */

  validateCaptcha: function() {
    challengeField = $("#recaptcha_challenge_field").val();
    responseField = $("#recaptcha_response_field").val();
    if (challengeField == '' || responseField == '') {
      jAlert('Veuillez completer la question de sécurité','Attention');
      return false;
    } else {
      return true;
    }
  },

  /* --------------------------- */

  check: function() {
    f = $("#loginForm").valid();
    if (f) $("#loginForm").submit();
    else jAlert('Le formulaire comporte des erreurs','Attention');
  },

  /* --------------------------- */

  submitEnter: function(f,e) {
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13) {
      this.check();
      return false;
    } else {
      return true;
    }
  },

  /* --------------------------- */

  lost: function() {
    f = $("#lostForm").valid();
    if (f) $("#lostForm").submit();
    else jAlert('Le formulaire comporte des erreurs','Attention');
  },

  /* --------------------------- */

  changePass: function() {
    f = $("#changePass").valid();
    if (f) {
      var d = $('#changePass').serialize();
      var _this = this;
      $.ajax({
        type: "POST",
        url: ROOT_URL + 'index.php',
        data:d,
        dataType: 'json',
        success: function(response){
          if (response.message == 'ok') {
            jAlert('Votre mot de passe a été changé avec succès','Succès');
            _this.cancelChangePass();
          } else {
            jAlert(response.message,'Attention');
          }
        },
        error: function(response) {
          jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
        }
      });
    } else {
      jAlert('Le formulaire comporte des erreurs','Attention');
    }

  },

  /* --------------------------- */

  cancelChangePass: function() {
    $('#changePass')[0].reset();
    acc.accordion("activate",1);
  }
};

/* --------------------------------------------------------------- */

var profileMedia = {
  
  /* ------------------------------- */ 	
  
  _start: function(media, mode) {
  
    switch(mode){
      case 'video' :	// Cas dailymotion
        var reg_daily = new RegExp('dailymotion','g');
        if (media != '') {    
          if(media.match(reg_daily) != null){      
            jwplayer('video-container').setup({
              flashplayer: ROOT_URL + 'statics/swf/player.swf',
              autostart: true,
              height:400,
              width:300,
              file:media,
              provider:ROOT_URL + 'statics/swf/dm.swf',
              controlbar:'over',
              'controlbar.idlehide': true
            })
          } else {
            //autres : flv, youtube
            jwplayer('video-container').setup({
              flashplayer: ROOT_URL + 'statics/swf/player.swf',
              autostart: true,
              height:400,
              width:300,
              controlbar:'over',
              'controlbar.idlehide': true
            }).load(media);
          }
        }
      break;
      case 'sound' :	
        if (media != '') {
          jwplayer('son-container').setup({
            flashplayer: ROOT_URL + 'statics/swf/player.swf',
            autostart: true,
            height:400,
            width:300,
            controlbar:'over',
            'controlbar.idlehide': true
          }).load(media);
        }
      break;
    }
  }
};

/* --------------------------------------------------------------- */

var profile = {  

  /* --------------------------- */

  showAddLang : function() {
    var nbl = $('#lang-block .langue').length;
    if (parseInt(nbl) >= 6) {
      jAlert('Vous ne pouvez ajouter plus de 8 langues','Attention');
    } else {   
      $('#add-lang-form').show();
    }
  },

  /* --------------------------- */

  hideAddLang : function() {
    $('#add-lang-form').hide();
  },  

  /* --------------------------- */

  addLang: function() {
    var l = $('#add-language-lang').val();
    var n = $('#add-language-lang-niveau').val();
    var lt = $('#add-language-lang option:selected').text();;
    var nt = $('#add-language-lang-niveau option:selected').text();
    
    var _self = this;
    $.ajax({
      type: "POST",
      url: ROOT_URL + "index.php",
      data: "ajax=addLang&lang="+l+"&niveau="+n+"&langText="+lt+"&niveauText="+nt,
      success: function(response) {
        _self.hideAddLang();
        $('#lang-block').append(response);
      },
      error: function() {
        jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
      }
    });
  },

  /* --------------------------- */

  removeLang : function(l) {
    $('#lang-' + l).html('<img src="'+ STATICS +'images/indicator.gif">');
    $.ajax({
      type: "POST",
      url: ROOT_URL + "index.php",
      data: "ajax=removeLang&lang="+l,
      success: function(response) {
        $('#lang-' + l).remove();
      },
      error: function() {
        jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
      }
    });
  },  
  
  /* --------------------------- */

  showAddJob : function() {
    var nbl = $('#job-block .job').length;
    if (parseInt(nbl) >= 6) {
      jAlert('Vous ne pouvez ajouter plus de 6 métiers','Attention');
    } else {   
      $('#add-job-form').show();
    }
  },

  /* --------------------------- */

  hideAddJob : function() {
    $('#add-job-form').hide();
  },  

  /* --------------------------- */

  addJob: function() {
    var j = $('#add-job').val();
    var jt = $('#add-job option:selected').text();;
    
    var _self = this;
    $.ajax({
      type: "POST",
      url: ROOT_URL + "index.php",
      data: "ajax=addJob&job="+j+"&jobText="+jt,
      success: function(response) {
		  if (response == 2) {
		  	jAlert('Vous avez déjà ajouté ce métier','Attention');
		  } else {
			  _self.hideAddJob();
			  $('#job-block').append(response);
		  }
      },
      error: function() {
        jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
      }
    });
  },

  /* --------------------------- */

  removeJob : function(j) {
    var savejob = $('#job-' + j).html();
	$('#job-' + j).html('<img src="'+ STATICS +'images/indicator.gif">');
    $.ajax({
      type: "POST",
      url: ROOT_URL + "index.php",
      data: "ajax=removeJob&job="+j,
      success: function(response) {
		 if(response == 1) $('#job-' + j).remove();
		 if(response == 2)  {
			 $('#job-' + j).html(savejob);
			 jAlert('Vous ne pouvez pas supprimer votre dernier métier. Ajoutez un nouveau métier pour pouvoir enfin supprimer celui-ci.','Attention');
		 }
      },
      error: function() {
        jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
      }
    });
  },    

  /* --------------------------- */

  helpForImage : function() {
    $(window).scrollTop($("#medias-tabs").offset().top);
  },
  
  /* --------------------------- */

  open_tab : function(name_tab) {
   
    // Go to bottom
    $(window).scrollTop($("#medias-tabs").offset().top);
	
	// Open tab
	this.tabs($('#link-'+name_tab),name_tab);
  },

  /* --------------------------- */

  tabs: function(tab,target) {
    //Remove any "active" class
    $("#medias-tabs li").removeClass("active");

    //Add "active" class to selected tab
    $(tab).parent().addClass("active");

    //Hide all tab content
    $("#medias-tabs-container .medias-tab-content").hide();

    //Fade in the active ID content
    var activeTab = $("#medias-tabs-container #" + target);
    $(activeTab).fadeIn();
    return false;
  },

  /* --------------------------- */

  addMedSwitch: function(t) {
    // Show active tab
    $("#add-med-" + t).toggle();
  },

  /* --------------------------- */

  addMed: function(t) {
    f = $("#add-med-form-"+t).valid();
    if (f) $("#add-med-form-"+t).submit();
    else jAlert('Le formulaire comporte des erreurs','Attention');
  },

  /* --------------------------- */

  cancelMed: function(t) {
    // Empty fieds
    $('#add-med-form-'+t+' input').not(':button, :submit, :reset, :hidden').val('');
  },

  /* --------------------------- */

  removeMed : function(e,m) {
  	if (!e) var e = window.event;
  	e.cancelBubble = true;
  	if (e.stopPropagation) e.stopPropagation();
      
    jConfirm('Etes-vous sûr de vouloir supprimer ce média ?','Confirmation',function(r) {
      if (r) {
        var backup = $('#med-' + m).html();
        $('#med-' + m).html('<img src="'+ STATICS +'images/indicator.gif">');
        $.ajax({
          type: "POST",
          url: ROOT_URL + "index.php",
          data: "ajax=removeMedia&media="+m,
          success: function(response) {
            var p = $('#med-' + m).parent();
            if (p.find('li').length == 1) p.append('<li class="empty">Pas de media</li>');
            $('#med-' + m).remove();
          },
          error: function(response) {
            if (response.responseText != '') {
              $('#med-' + m).html(backup);
              jAlert(response.responseText,'Attention');
             } else {
              jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
            }
          }
        });
      }
    });
  },
  
  /* --------------------------- */

  addNews: function() {  
    f = $("#add-news-form").valid();
    if (f) $("#add-news-form").submit();
    else jAlert('Le formulaire comporte des erreurs','Attention');
  },

  /* --------------------------- */

  cancelNews: function() {
    // Empty fieds
    $('#add-news-form input').not(':button, :submit, :reset, :hidden').val('');
  },

  /* --------------------------- */

  removeNews : function(id) {
    jConfirm('Etes-vous sûr de vouloir supprimer cette actualitée ?','Confirmation',function(r) {
      if (r) {
        var backup = $('#news-' + id).html();
        $('#news-' + id).html('<tr><td><img src="'+ STATICS +'images/indicator.gif"></td></tr>');
        $.ajax({
          type: "POST",
          url: ROOT_URL + "index.php",
          data: "ajax=removeNews&news="+id,
          success: function(response) {
            var p = $('#news-' + id).parent();
           // if (p.find('table').length == 1) p.append('<table><tr><td>Pas d\'actu actuellement</td></tr></table>');
	         if (p.find('table').length == 1) p.append('');            
            $('#news-' + id).remove();
          },
          error: function(response) {
            if (response.responseText != '') {
              $('#news-' + id).html(backup);
              jAlert(response.responseText,'Attention');
             } else {
              jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
            }
          }
        });
      }
    });
  },  

  /* --------------------------- */

  changeStatus: function() {
    var s = $('#vadmin').val();
    jConfirm('Etes-vous sûr de vouloir continuer ?','Confirmation',function(r) {
      if (r) {
        $.ajax({
          type: "POST",
          url: ROOT_URL + "index.php",
          data: "ajax=changeStatus&status="+s,
          success: function(response) {
            jAlert('Le statut de la fiche a été changé avec succès','Succès');
          },
          error: function() {
            jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
          }
        });
      }
    });
  },
  

  /* --------------------------- */

  changeAccess: function() {
    var s = $('#access').val();
    jConfirm('Etes-vous sûr de vouloir continuer ?','Confirmation',function(r) {
      if (r) {
        $.ajax({
          type: "POST",
          url: ROOT_URL + "index.php",
          data: "ajax=changeAccess&access="+s,
          success: function(response) {
            jAlert('Le type de membre a été changé avec succès','Succès');
          },
          error: function() {
            jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
          }
        });
      }
    });
  },  

  /* --------------------------- */

  clear: function(el) {
    $(el).val('');
  }

};

/* --------------------------------------------------------------- */

function send_mail() {
    f = $("#send_mail").valid();
    if (f) {
      var d = $('#send_mail').serialize();
      var _this = this;
      $.ajax({
        type: "POST",
        url: ROOT_URL + 'index.php',
        data:d,
        dataType: 'json',
        success: function(response){
          if (response.message == 'ok') {
            jAlert('Email envoyé avec succès','Succès');
          } else {
            jAlert(response.message,'Attention');
          }
        },
        error: function(response) {
          jAlert('Une erreur est survenue. Merci de re-essayer ulterieurement','Attention');
        }
      });
    } else {
      jAlert('Vous devez remplir tous les champs','Attention');
    }
  }

/* --------------------------------------------------------------- */

function redirect(URL) {
  document.location.href = URL;
  return false;
}

/* --------------------------------------------------------------- */

function scrollToId(id) {
  $('html, body').animate({
    scrollTop: $(id).offset().top
  }, 800);
}

/* --------------------------------------------------------------- */

function video_bascule(id_object_desactive, id_object_active) {
  
  if($('#'+id_object_active).checked == true){   
	  $('#'+id_object_active).show();
	  $('#'+id_object_active).removeAttr('disabled');

	  $('#'+id_object_desactive).attr('disabled', 'disabled');
	  $('#'+id_object_desactive).hide();
  }
  else{
	  $('#'+id_object_desactive).show();
	  $('#'+id_object_desactive).removeAttr('disabled');

	  $('#'+id_object_active).attr('disabled', 'disabled');
	  $('#'+id_object_active).hide();	 
  }
}

/* --------------------------------------------------------------- */

jQuery.validator.addMethod("youtube", function(value, element) {
  return this.optional(element) || /^http:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=\w+)(?:\S+)?$/i.test(value) ;
}, "Please insert a valid youtube url");

jQuery.validator.addMethod("videos", function(value, element) {
  return this.optional(element) || /^http:\/\/(?:www\.)?(youtube|dailymotion)\.com\b/i.test(value);
}, "Please insert a valid youtube or dailymotion url");

jQuery.validator.addMethod("videos_media", function(value, element) {
  return this.optional(element) || value != '';
}, "Please add a video");

jQuery.validator.addMethod("strongpassword", function(value, element) {
  return this.optional(element) || /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20}/i.test(value);
}, "Please enter a valid password");

jQuery.validator.addMethod("password", function(value, element) {
  
  var lcase_count = value.match(/[a-z]/g);
  lcase_count = (lcase_count) ? lcase_count.length : 0;
  var ucase_count = value.match(/[A-Z]/g);
  ucase_count = (ucase_count) ? ucase_count.length : 0;
  
  var case_count = lcase_count + ucase_count;
  
  var number_count = value.match(/[0-9]/g);
  number_count = (number_count) ? number_count.length : 0;
  
 // return this.optional(element) || /^(?=.*\d{2})(?=.*[a-zA-Z]{6}).{8,}$/i.test(value);
  return this.optional(element) || (lcase_count + ucase_count >= 4 && number_count >=2);   
}, "Please enter a valid password");

jQuery.extend(jQuery.validator.messages, {
  strongpassword: "Veuillez entrer un mot de passe conforme",
  password: "Veuillez entrer un mot de passe conforme : au moins 2 chiffres et 4 lettres",
  required: "Ce champ est requis.",
  remote: "Veuillez remplir ce champ pour continuer.",
  email: "Veuillez entrer une adresse email valide.",
  url: "Veuillez entrer une URL valide.",
  date: "Veuillez entrer une date valide.",
  dateISO: "Veuillez entrer une date valide (ISO).",
  number: "Veuillez entrer un nombre valide.",
  digits: "Veuillez entrer (seulement) une valeur numérique.",
  creditcard: "Veuillez entrer un numéro de carte de crédit valide.",
  equalTo: "Veuillez entrer une nouvelle fois la même valeur.",
  accept: "Veuillez entrer un fichier conforme.",
  maxlength: jQuery.validator.format("Veuillez ne pas entrer plus de {0} caractères."),
  minlength: jQuery.validator.format("Veuillez entrer au moins {0} caractères."),
  rangelength: jQuery.validator.format("Veuillez entrer entre {0} et {1} caractères."),
  range: jQuery.validator.format("Veuillez entrer une valeur entre {0} et {1}."),
  max: jQuery.validator.format("Veuillez entrer une valeur inférieure ou égale à {0}."),
  min: jQuery.validator.format("Veuillez entrer une valeur supérieure ou égale à {0}."),
  videos: jQuery.validator.format("Veuillez entrer une url Youtube ou Dailymotion valide."),
  videos_media: jQuery.validator.format("Veuillez remplir le champ vidéo.")
});

/* --------------------------------------------------------------- */

Array.prototype.findIndex = function(value){
  var ctr = '';
  for (var i=0; i < this.length; i++) {
    if (this[i] == value) return i;
  }
  return ctr;
};

/* --------------------------------------------------------------- */



