function newCaptcha(elmt)
{
  elmt.src = baseUrl+'/images/front/captcha_a.php?'+token();
  
  return false;
}

function token()
{
  var chars = '0123456789abcdefghiklmnopqrstuvwxyz';
  var length = 40;
  var token = '';
  
  for (var i=0; i<length; i++) {
  	var rnum = Math.floor(Math.random() * chars.length);
  	token += chars.substring(rnum, rnum+1);
  }
  
  return token;
}



var Mod = 
{
  options: function() 
  {
    return {
      width: 344,
      opacity: 0.7,
      zIndex: 9996,
      fade: true,
      fadeDuration: 0.5,
      afterOpen: function() {
  	    var height = $('container').getHeight();
	  
  	    if (document.viewport.getHeight() > height) {
          height = document.viewport.getHeight();
        }

        $('modal_overlay').setStyle({height: height+'px'});
  	  }
  	};
  }, 

  modalCss: function(msg, title)
  {
    return '<div class="box_popup"><div class="title"><img src="'+baseUrl+'/images/front/ico_smile.png" alt="" style="position:relative;top:-1px" />'+(title != undefined ? title : '')+'</div><div class="content"><p>'+msg+'</p>'+
    '<p  class="right"><a href="#" onclick="Control.Modal.close();return false"><img src="'+baseUrl+'/images/front/bt_previous.png"></a></p></div></div>';
  },

  modal: function(url, msg, logged, title)
  {
    var link = document.createElement('a');
	
  	var options = Mod.options();
  	if(url)
  	{
  	  link.href = baseUrl+url;		  
  	}
  	else if(msg)
  	{
  	  options.contents = function(){ return Mod.modalCss(msg, title); };
  	}  
  
    if(!logged)
    {
      var modal = new Control.Modal(link, options);
      modal.open();
    }
    else
    {
      new Ajax.Request(baseUrl+'/users/is_logged.php', {
    		onSuccess: function() {
    			var modal = new Control.Modal(link, options);
          modal.open();
    		},

    		onFailure: function() {
    			Mod.modal(null, 'Merci de vous identifier pour réaliser cette action', false, title);
    		}
    	});
    }
  
    return false;
  },

  hoverbox: function(elmt, message)
  {
    if(message)
  	{
  	  if(elmt.hoverbox == undefined)
  	  {
  	    	var modal = new Control.Modal(elmt, {
    				hover: true,
    				position: 'mouse',
    				offsetTop: -20,
    				offsetLeft: 20,
    				containerClassName: 'hoverbox',
    				contents: function(){  
    			        return message;  
    			  },
    			  afterClose: function() {
    			    modal = null;
    			  }
    			});
  			
    			elmt.hoverbox = modal;
    			modal.open();
  	  }
  	}
	
  	return false;
  },

  infos: function(msg, title)
  {
    var modal = Control.Modal.current;
  
    if(modal)
    {
      var elmt = $('modal_container');
    	    
      Effect.Fade(elmt, { from: 1, to: 0.1, duration: 0.5, queue: 'end', afterFinish: function(){ elmt.update(Mod.modalCss(msg, title)); }});
      Effect.Fade(elmt, { from: 0.1, to: 1, duration: 0.5, queue: 'end'});
    }
    else
    {
      Mod.modal(null, msg, false, title);
    }
  
    setTimeout("Control.Modal.close()", 5000);//pb si fermeture mano et réouverture dans un laps trop court => ca referme auto
  	  
    return false;
  },

  errors: function(elmtId, msg)
  {
    var elmt = $(elmtId);
  
    if(elmt)
    {
      msg = '<a href="#" id="alert_close" onclick="return Mod.close(\''+elmtId+'\');">'+msg+'</a>';
      elmt.update(msg);
  	  Effect.BlindDown(elmt);
    }
    else
    {
      Mod.infos(msg);
    }  
  
    return false;
  },

  close: function(elmt)
  {
    var elmt = $(elmt);
  
    if(elmt)
      Effect.BlindUp(elmt);
  
    return false;
  }
};