$(function()
{
 $ie6=($.browser.msie&&parseInt($.browser.version,10)<=6);
 $oldbrowser=OldBrowser();
 $bout={border:'1px solid #efefef',backgroundColor:'#efefef'};
 $bout2={border:'1px solid #aaa',backgroundColor:'#efefef'};
 $bover={border:'1px solid #666',backgroundColor:'#ddd'};
 $shadow=($.browser.opera||$.browser.msie)?{}:{border:'none','-moz-box-shadow':'2px 2px 6px #000','-webkit-box-shadow':'2px 2px 6px #000','box-shadow':'2px 2px 6px #000'};
 $faceboxshadow=($.browser.opera||$.browser.msie)?{}:{'-moz-box-shadow':'2px 2px 10px #000','-webkit-box-shadow':'2px 2px 10px #000','box-shadow':'2px 2px 10px #000'}
 $col=['#E8360A','#31AA00','#8B9A85','#0D52E8'];
 $ollia=false;
 $ullia=false;
 $opacity=0.5;
 $version=null;
 $path=($('base').attr('href'));
 $isadmin=$('body#isadmin').is('body');
 $isuser=$('body#isuser').is('body');
 $temp=null;
 $interval=null;
 $timeout=null;$timeouttip=null;$timeoutsearch=null;
 $lastsearch=false;
 $topreload=[];
 $config=null;
 $adminemail=null;
 $allowsmenu=null;
 $showsmenus=null;
 $allowmap=$('head script[src^="http://maps.google.com/maps/api/js"]').is('script');
 $allowvideo=null;
 $allowmusic=null;
 $exts_imgs=['jpg','jpeg','gif','png'];
 $exts_docs=['pdf','zip','rar'];
 $exts_vids=['flv'];
 $exts_auds=['mp3'];
 $img_icons='shared/nicedit.png';
 $img_blank='shared/blank.png';
 $img_loading='shared/wait.gif';
 $img_zoom=false; $.ajax({url:'img/picto_zoom.png',type:'HEAD',success:function(){$img_zoom='img/picto_zoom.png';},error:function(){$img_zoom=false;}});
 $editor_selectw=(8*20)-2;
 $editor_buttons=['undo','redo','bold','italic','underline','strikethrough','superscript','subscript','fontSize','left','center','right','justify','ol','ul','outdent','indent','fontFormat','forecolor','bgcolor','removeformat','hr','table','unlink','xhtml','upload','link','image','video','audio'];
 $editor_width=(8*20)+4;
 $editor=false;
 $dragged=false;
 $edit_content=false;
 $edit_menu=false;
 $sortable_menu=false;
 $files=false;
 $imgs=false;
 $docs=false;
 $vids=false;
 $auds=false;
 $pages=false;
 $menu=null;
 $langs=null;
 $lang=null;
 $href=null;
 $name=null;
 $title=null;
 $l=null;
 $sl=null;
 $status=null;
 $locked=null;
 $timer=null;
 $created=null;
 $updated=null;
 $content=null;
 $content_width=null;
 $demo=false;
 $.getScript('shared/form.js');
 $.getScript('shared/jgrowl.js',function(){ $.extend($.jGrowl.defaults,{ closer:false,life:5000,glue:'after' }); });
 $.getScript('shared/ui-core.js');
 $.getScript('shared/ui-interactions.js');
 $.getScript('shared/ui-effects.js');
 $.getScript('jscript.js');
 GetFiles();
 $.Preload(['img/facebox.png','img/msg.png','img/msg_ok.png','img/msg_ko.png','img/wait.gif',$img_loading,$img_icons]);
 $.extend($.facebox.settings,{faceboxHtml:'<div id="facebox" style="display:none;"><div class="popup"><table><tbody><tr><td class="tl"/><td class="b"/><td class="tr"/></tr><tr><td class="b"/><td class="body"><div class="content"></div></td><td class="b"/></tr><tr><td class="bl"/><td class="b"/><td class="br"/></tr></tbody></table></div></div>'});
 if($oldbrowser){
  $('<div class="small"></div>').css({position:'absolute',left:0,top:0,width:'100%',color:'#D87100',padding:0,margin:0,textDecoration:'none',background:'#FFF1BE',opacity:.85,borderBottom:'1px solid #000',zIndex:99})
  .append($('<div></div>').css({padding:5})
   .append($('<b></b>').css({float:'left',width:22,height:16,background:'url(shared/ico-careful.png) no-repeat center'}))
   .append($('<span>Votre navigateur Internet est obsolète ('+$oldbrowser+'), pour des raisons de sécurité et de compatibilité, vous devriez le mettre à jour! </span>'))
   .prepend($('<a href="http://opentochoice.org/fr/" title="Choisir son navigateur est important"><i>Choisir son navigateur est important.</i></a>').css({float:'right',whiteSpace:'nowrap',paddingLeft:20,color:'#D87100'}).attr('target','_blank'))
   .prepend($('<a href="http://www.mozilla-europe.org/fr/firefox" title="Essayez Mozilla Firefox"></a>').css({float:'right',width:22,height:16,background:'url(shared/ico-firefox.png) no-repeat center'}).attr('target','_blank'))
   .prepend($('<a href="http://www.google.fr/chrome" title="Essayez Google Chrome"></a>').css({float:'right',width:22,height:16,background:'url(shared/ico-chrome.png) no-repeat center'}).attr('target','_blank'))
   .prepend($('<a href="http://www.microsoft.com/france/windows/internet-explorer" title="Essayez Internet Explorer"></a>').css({float:'right',width:22,height:16,background:'url(shared/ico-ie.png) no-repeat center'}).attr('target','_blank'))
   .prepend($('<a href="http://www.opera.com" title="Essayez Opera"></a>').css({float:'right',width:22,height:16,background:'url(shared/ico-opera.png) no-repeat center'}).attr('target','_blank'))
   .prepend($('<a href="http://www.apple.com/fr/safari" title="Essayez Apple Safari"></a>').css({float:'right',width:22,height:16,background:'url(shared/ico-safari.png) no-repeat center'}).attr('target','_blank')) )
  .hover(function(){ $(this).css({opacity:1}); },function(){ $(this).css({opacity:.85}); })
  .appendTo('body');
 }
  if($isadmin||$isuser){
   Cache.Construct($opacity);
   Cache.On('normal',$opacity);
   $.getScript('shared/ui-datepicker.js', function(){
   $.getScript('shared/admin.js',function(){
    GetConfig('init');
   });});
  }
  else if(!$oldbrowser){
   $('<div></div>').attr('id','keylogin')
   .css({position:($ie6?'absolute':'fixed'),left:0,top:0,width:18,height:18,zIndex:100,background:'url('+$img_blank+')'})
   .hover(function(){$(this).css({background:'url('+$img_icons+') -576px center'});},function(){$(this).css({background:'url('+$img_blank+')'});})
   .click(function(){
    $.facebox($('<form id="form_login" method="post" action="'+$path+'"></form>')
    .css({background:'#fff'}).click(function(){$('#form_login #res').hide('normal');})
    .append($('<b></b>').css({position:'absolute',width:18,height:18,background:'url('+$img_icons+') -576px center'}))
    .append(
     $('<p></p>').css({width:180,margin:'0 0 5px 0',padding:0})
     .append( $('<label for="username">Identifiant</label>').css({float:'left',width:95,padding:'2px 5px 0 0',textAlign:'right',fontSize:12}) )
     .append( $('<input id="username" name="username" type="text" />').css({width:70,fontSize:12}) )
    )
    .append(
     $('<p></p>').css({width:180,margin:'0 0 5px 0',padding:0})
     .append( $('<label for="password">Mot de passe</label>').css({float:'left',width:95,padding:'2px 5px 0 0',textAlign:'right',fontSize:12}) )
     .append( $('<input id="password" name="password" type="password" />').css({width:70,fontSize:12}) )
    )
    .append(
     $('<p></p>').css({width:180,margin:0,padding:0})
     .append( $('<input type="submit" value="Envoyer" />').css({border:'1px solid #aaa',background:'#efefef',cursor:'pointer',fontSize:13}))
    )
    .ajaxForm({
     beforeSubmit:function(){
      var u=$('input[name=username]').fieldValue();
      var p=$('input[name=password]').fieldValue();
      var s=$('#form_login input[type=submit]'); s.blur();
      var c=true;
      if(!u[0]){$.jGrowl('Entrez votre identifiant',{theme:'ko'}); $('input[name=username]').effect('pulsate',{times:5},300); c=false;}
      if(!p[0]){$.jGrowl('Entrez votre mot de passe',{theme:'ko'}); $('input[name=password]').effect('pulsate',{times:5},300); c=false;}
      if(c){$('#form_login input[type=submit]').attr('disabled','disabled');}else{return false;}
     },
     success:function(data){
      if(data=='logged'){$.jGrowl('Connexion en cours...',{theme:'ok'}); $(document).trigger('close.facebox'); Cache.Construct(0); Cache.On(2000,$opacity,function(){window.location=$path+'edition';}); }
      else{ $.jGrowl(data,{theme:'ko'}); $('#form_login input[type=submit]').removeAttr('disabled'); return false; }
     }
    }));
    $('#form_login input#username').focus();
   })
   .appendTo('body');
  }
   if($('#search').is('div')){
    $('#search #results').css($shadow);
    $('#search form').bind('submit',function(){ return false; });
    if($('#search input#q').val()!=''){Search.MakeCancel();}
    $('#search input#q')
    .bind('focus',function(){
      $(this).addClass('focus');
      clearTimeout($timeoutsearch);
      var q=$.trim($(this).val());
      if($lastsearch==false && q!=''){
        $lastsearch=q;
        $('#search input#q').removeClass('cancel').addClass('process');
        Search.MakeCancel();
        Search.Search(q);
      }
      else if(!$('#search #results').hasClass('focus')&&$('#search #results').html()!=''){$('#search #results').fadeIn('slow',function(){ $(this).fadeTo('fast',0.95); });}
    })
    .bind('keyup',function(e){
      clearTimeout($timeoutsearch);
      if(e.keyCode==27){ clearTimeout($timeout); $('#search #results').fadeOut(); };
      var q=($(this).val().toString());
      var reg=new RegExp(/[^a-zA-Z0-9 èéêëçìíîïñùúûüµþßàáâãäåæòóôõöœÈÉÊËÇÌÍÎÏÑÙÚÛÜÞÀÁÂÃÄÅÆÒÓÔÕÖŒ]/gi);
      var k=e.keyCode;
      var badk=[9,13,17,18,19,27,33,34,35,36,37,38,39,40,44,45,91,92,93,112,113,114,115,116,117,118,119,120,121,122,123,144,145];
      if(q.match(reg)){ $.jGrowl('<b>'+q.match(reg).toString()+'</b> est un caractère invalide !',{theme:'ko'}); var arr=q.split(reg); q=arr.join(''); $(this).val(q).caret(q.length-(arr[arr.length-1].length)); }
      if($.inArray(k,badk)==-1 && q!=$lastsearch && q!=''){
       q=q.toLowerCase();
       $lastsearch=q;
       $('#search input#q').removeClass('cancel').addClass('process');
       $timeoutsearch=setTimeout(function(){ Search.MakeCancel(); Search.Search(q); },1500);
      }
      else if(q==''){ Search.Unset(); }
      else{ $('#search input#q').removeClass('cancel process'); }
    })
    .blur(function(){ $(this).removeClass('focus'); if(!$('#search #results').hasClass('focus')){$('#search #results').fadeOut();} });
   }
});
$(window).load(function()
{
 $('#content').MyImages();
 $('*[title]').MyTip();
 $('#content').MyLinks();
 if($topreload.length>0){ $.Preload($topreload);}
 if($('#ga').length==1){$.getScript('http://www.google-analytics.com/ga.js',function(){ var pageTracker=_gat._getTracker($('#ga').attr('class')); pageTracker._trackPageview(); });}

});
/***************************************************************************************************************/
/***************************************************************************************************************/

///   CACHE
var Cache={
Construct:function(o){//
 if($('#mycache').length==0){$('<div id="mycache"></div>').appendTo('body');}
 $('#mycache').css({position:($ie6?'absolute':'fixed'),opacity:o,backgroundImage:'url(img/wait.gif)',backgroundRepeat:'no-repeat',backgroundPosition:'center 40%',cursor:'wait'});
},
On:function(speed,o,fct){//
 $('#mycache').css({display:'block',backgroundImage:'url(img/wait.gif)',backgroundRepeat:'no-repeat',backgroundPosition:'center 40%',cursor:'wait'}).fadeTo(200,o,eval(fct));
},
Off:function(speed){//
 $('#mycache').fadeOut(200,function(){ $('#mycache').css({opacity:0});});
}
};



///   Search
var Search={
FormatQ:function(q){
 var s=$.trim(q.toLowerCase()).split(' '); var j=new Array(); var g=new Array();
 for(var i=0; i<s.length; i++){ if(s[i].length<3){j.push(s[i]);}else{g.push(s[i]);} }
 return Array((s.length>j.length)?false:s.length,g.join(' '));
},
MakeCancel:function(){
 if(!$('#search #cancel').is('b')){
  $('#search input#q').addClass('cancel').removeClass('process');
  var b=$('<b id="cancel"></b>');
  b.appendTo('#search form fieldset');
  var m=($('#search form fieldset').height()-$('#search #cancel').height())/2;
  b.css({cursor:'pointer',left:($('#search form fieldset').width()-$('#search #cancel').width()-1),top:(m)})
  .bind('click',function(){ Search.Unset(); })
  .MyTip({text:'Annuler la recherche'});
 }
},
Unset:function(){
 Search.Search(false);
 $('#search #cancel').remove();
 $('#search #results').fadeOut('normal',function(){ $(this).empty(); $('#search input#q').removeClass('cancel process').val(''); $('#content .high').removeClass('high'); });
},
Results:function(r){
 $('#content .high').removeClass('high');
 $('#search #results')
 .html(r)
 .fadeIn('slow',function(){
   $(this).fadeTo('fast',0.95);
   if($('.noresult',this).is('p')){ clearTimeout($timeout); $timeout=setTimeout(function(){ $('#search #results').fadeOut(); },2000); }
   else{ $('<div class="u">Fermer</div>').css({position:'absolute',top:0,right:0,padding:'1px 5px',cursor:'pointer'}).click(function(){ clearTimeout($timeout); $('#search #results').fadeOut(); }).prependTo(this); }
   $('#search input#q').removeClass('process').addClass('cancel');
 })
 .bind('mouseover',function(){ $(this).addClass('focus'); clearTimeout($timeout); })
 .bind('mouseleave',function(){ $(this).removeClass('focus'); clearTimeout($timeout); if(!$('#search input#q').hasClass('focus')){ $timeout=setTimeout(function(){ $('#search #results').fadeOut(); },2000); } })
 .find('*[title]').MyTip();
 if($isadmin||$isuser){ $('#search #results').MyLinks(); }
},
Search:function(q){
 var n=q?Search.FormatQ(q):false;
 if(q&&n[0]){
  Search.Results('<p class="noresult">'+(n[0]==1?'Mot recherché trop court !':'Mots recherchés trop courts !')+'</p>');
 }
 else{
  $.ajax({
   type:'POST',
   cache:false,
   url:'shared/_process.php',
   data:'ajax=search'+(q?('&q='+(n[1].replace(/&/g,'°°AMPERSTAND°°').replace(/\+/g,'°°PLUS°°').replace(/&(?!#?\w+;)/g,'%26'))):('&cancel=1')),
   dataType:'html',
   success: function(data){
    if(q){Search.Results(data);}
   }
  });
 }
}
};



///   Auto detect images (facebox)
(function($){$.fn.UnMyImages=function(){
 var c=$(this);
 $('img',c).removeAttr('style').unbind('click.myimages');
};})($);
(function($){$.fn.MyImages=function(){
 var c=$(this);
 var imgs=$('img',c);
 imgs.each(function(){
  var img=$(this).attr('src').split('/');
  var rep=img[img.length-2]; img=img[img.length-1];
  var title=false;
  if(rep=='doc'){
   title=$(this).attr('alt');
   var src=$('img[thumb="'+(img)+'"]',$files).attr('src');
   if(src){
    $topreload.push('doc/'+img,'doc/'+src);
    $(this).css({cursor:'pointer'});
    if($.isFunction($.MyImage)&&!$isadmin&&!$isuser){ $.MyImage($(this)); }
    else{
     if(!$oldbrowser && $img_zoom && !$isadmin && !$isuser){
      $('<img src="'+$img_zoom+'" />')
      .css({position:'absolute',border:'none',background:'none',
            left:($(this).position().left+parseFloat($(this).css('marginLeft'))-10+parseFloat($(this).css('borderLeftWidth'))+2),
            top:($(this).position().top+parseFloat($(this).css('marginTop'))+parseFloat($(this).css('borderTopWidth'))+2)})
      .appendTo('#content');
     }
     $(this)
     .css({position:'relative'})
     .bind('click.myimages',function(){
      var size=$.SizeImg(src); var r=false;
      size.dw=(size.w+30)-$(window).width();
      size.dh=(size.h+30)-$(window).height();
      if(size.dw>0||size.dh>0){
       if(size.dw>0&&size.dw>size.dh){ r=size.h/size.w; size.rw=$(window).width()-30; size.rh=size.rw*r; }
       else{ r=size.w/size.h; size.rh=$(window).height()-30; size.rw=size.rh*r; }
      }
      $.facebox(
       $('<div></div>').css({width:(!r?size.w:size.rw),height:(!r?size.h:size.rh)})
       .append($('<img src="doc/'+src+'" />').css({position:'absolute',width:(!r?size.w:size.rw),height:(!r?size.h:size.rh),border:'none'}))
       .append($('<b></b>').css({position:'absolute',display:'block',width:(!r?size.w:size.rw),height:(!r?size.h:size.rh),color:'#000',background:'url('+$img_blank+')',padding:0})
              .append($('<span>ESC ou click en dehors ou  <span class="u">fermer</span></span>').css({float:'right',fontWeight:'normal',fontSize:'70%',cursor:'pointer',padding:'2px 5px',color:'#000',background:'#fff'}).fadeTo('fast',0.5).hover( function(){$(this).css({opacity:0.5}).show().stop().fadeTo('normal',0.75);},function(){$(this).stop().fadeTo('normal',0.5);} ).click(function(){$.facebox.close();}))
              .append($('<span>'+title+'</span>').css({padding:'2px 5px',color:'#000',fontSize:'110%',background:'#fff'}).fadeTo('fast',0.75)))
       .append(r?($('<span>L\'image a été réduite à '+Math.round(size.rh/size.h*100)+'%, afficher la taille réelle</span>').attr('w',size.w).attr('h',size.h).css({position:'absolute',bottom:0,color:'#000',padding:'2px 5px',background:'#fff',cursor:'pointer'})
                  .fadeTo('fast',0.5)
                  .hover( function(){$(this).css({opacity:0.5}).show().stop().fadeTo('normal',0.75);},function(){$(this).stop().fadeTo('normal',0.5);} )
                  .click(function(){var w=$(this).attr('w'); var h=$(this).attr('h'); $(this).parent().css({width:w+'px',height:h+'px'}).children().css({width:w+'px',height:h+'px'}); $(this).remove(); })):'')
      );
     });
    }
  }}
 });
};})($);
///   MyTip
(function($){$.fn.UnMyTip=function(){
 $(this).unbind('hover.mytip').unbind('mouseenter.mytip').unbind('mouseleave.mytip');
};})($);
(function($){$.fn.MyTip=function(o){
 o=$.extend( {text:false}, o || {} );
 if($edit_content && o.text==false){ return false; }
 $(this).each(function(){
  if(o.text || this.title){ $(this).attr('t',this.title)
    xOffset=-15;
    yOffset=10;
   $(this)
   .bind('mouseenter.mytip',function(e){
     clearTimeout($timeouttip);
     $timeouttip=setTimeout(function(){$('#tooltip').fadeOut(function(){$(this).remove();});},3000);
     $('#tooltip').remove();
     this.title='';
     if(o.text){this.tt=$('<div></div>').append(o.text); $('ins[cite$=.flv]',this.tt).Video(); $('body').append($('<div id="tooltip"></div>').append(this.tt));}
     else{this.tt=$(this).attr('t'); $('body').append('<div id="tooltip">'+this.tt+'</div>');}
     $('#tooltip')
     .css({top:(e.pageY-xOffset),left:(e.pageX+yOffset)})
     .css($shadow)
     .fadeIn('slow')
     .bind('mouseenter',function(){$(this).remove();});
   })
   .bind('mouseleave.mytip',function(){ this.title=$(this).attr('t'); $('#tooltip').remove(); clearTimeout($timeouttip); })
   .mousemove(function(e){ $('#tooltip').css({top:(e.pageY-xOffset),left:(e.pageX+yOffset)}); });
 }});
};})($);
///LINKS
(function($){$.fn.UnMyLinks=function(){
 //var c=$(this);
 var c=$('#content');
 $('object',c).remove();
 $('a',c).removeAttr('class').removeAttr('style').removeAttr('target').bind('click.mylinks',function(){return false;});
 $('a[href!="'+$path+'fr/"],a[href!="'+$path+'en/"],a[href!="'+$path+'de/"]',c).addClass('linkout');
 $('a[href^="http://maps.google.fr"],a[href^="http://maps.google.com"]',c).removeClass('linkout').addClass('linkmap');
 $('a[href^="'+$path+'fr/"],a[href^="'+$path+'en/"],a[href^="'+$path+'de/"],a[href^="fr/"],a[href^="en/"],a[href^="de/"],a[href="fr"],a[href="en"],a[href="de"]',c).removeClass('linkout').addClass('linkin');
 $('a[href$=".pdf"]',c).removeClass('linkout linkin').addClass('linkpdf');
 $('a[href$=".zip"]',c).removeClass('linkout linkin').addClass('linkzip');
 $('a[href$=".rar"]',c).removeClass('linkout linkin').addClass('linkrar');
 $('a[href^="mailto:"]',c).removeClass('linkout linkin').addClass('linkmail');
 if($allowvideo && $allowvideo!=0){ var s=$allowvideo.split('x'); $('ins[cite$=.flv]',c).removeAttr('style').addClass('linkvid').css({width:s[0]+'px',height:s[1]+'px',lineHeight:s[1]+'px'}).bind('keypress',function(){$.jGrowl('Press');});}
};})($);
(function($){$.fn.MyLinks=function(){
 //var c=$(this);
 var c=$('#content');
 $('a[href!="'+$path+'fr/"],a[href!="'+$path+'en/"],a[href!="'+$path+'de/"]',c).addClass('linkout');
 $('a[href^="http://maps.google.fr"],a[href^="http://maps.google.com"]',c).removeClass('linkout').addClass('linkmap');
 $('a[href^="'+$path+'fr/"],a[href^="'+$path+'en/"],a[href^="'+$path+'de/"],a[href^="fr/"],a[href^="en/"],a[href^="de/"],a[href="fr"],a[href="en"],a[href="de"]',c).removeClass('linkout').addClass('linkin');
 $('a[href$=".pdf"]',c).removeClass('linkout linkin').addClass('linkpdf');
 $('a[href$=".zip"]',c).removeClass('linkout linkin').addClass('linkzip');
 $('a[href$=".rar"]',c).removeClass('linkout linkin').addClass('linkrar');
 $('a[href^="mailto:"]',c).removeClass('linkout linkin').addClass('linkmail');
 if(($isadmin||$isuser) && $allowvideo!=0){ $('ins[cite$=".flv"]',c).Video(); }
 $('a').unbind('click.mylinks')
 .focus(function(){this.blur();})
 .filter(function(){if(!$(this).closest('#menu').is('ol,ul')){
   if($(this).is('.linkout')){ $(this).attr('target','_blank'); }
   else if($allowmap && $(this).is('.linkmap')){ $(this).bind('click.mylinks',function(){ if(!$edit_content&&!$edit_menu){ $(this).facemap(); } return false; }); }
   else if(($isadmin||$isuser) && $(this).is('.linkin')){
    var s=this.href.split('/');
    if($.inArray(s[s.length-1],$langs)!=-1){ var l=$.inArray(s[s.length-1],$langs); s=$menu[l][0][0][5]; }
    else if($.inArray(s[s.length-2],$langs)!=-1){ var l=$.inArray(s[s.length-2],$langs); s=s[s.length-1]; }
    else{ var s=false; }
    if(s){ $(this).bind('click.mylinks',function(){ if(!$edit_content&&!$edit_menu){ if(l!=$lang){Menu.Lang(l,s);}else{Menu.Change(1,s);} } return false; });}
   }
 }});
};})($);
///   GetFiles
this.GetFiles=function(file,cur,type){
 $.ajax({
  async:false,
  url:'data/_files.xml',
  cache:false,
  dataType:'xml',
  error:function(x,t,e){
   if($isuser||$isadmin){
    if(file=='img' || file=='vid' || file=='aud' || file=='doc'){ Lib.Construct(file,'error'); }
    else{ alert('Impossible de charger les fichiers !\nMerci d\'actualiser la page.\nSi le problème persiste, merci de contacter l\'administrateur.<br />Error: '+e); return false; }
   }
  },
  success:function(data) {
   $files=data;
   if($isuser||$isadmin){
    if(file=='img' || file=='vid' || file=='aud' || file=='doc'){ Lib.Construct(file,cur,type); }
   }
  }
 });
};
///   facebox map
$.fn.facemap=function()
{
 $.facebox( $('<div id="gmap"></div>').css({'width':$(window).width()/1.5,'height':$(window).height()/1.2}) ,true);
 var p=Param($(this).attr('href')); p.ll='46.75984,1.738281';
 if(p.sll){ p.ll=p.sll; p.sll=p.sll.split(','); } p.ll=p.ll.split(','); //$.jGrowl((Param(href,'q'))+' '+ll[0]+','+ll[1]+' z='+Param(href,'z'));
 p.z=p.sll&&p.z?parseInt(p.z):6;
 var ll=new google.maps.LatLng(p.ll[0],p.ll[1]);
 $map_map=new google.maps.Map(document.getElementById('gmap'),{
   zoom: p.z,
   center: ll,
   scaleControl: true
 });
 if(p.t=='h'){$map_t='h'; $map_map.setMapTypeId('hybrid');}else if(p.t=='k'){$map_t='k'; $map_map.setMapTypeId('satellite');}else if(p.t=='p'){$map_t='p'; $map_map.setMapTypeId('terrain');} else{$map_t='m'; $map_map.setMapTypeId('roadmap');}
 $map_q=decodeURIComponent(p.q);
 var elevator=new google.maps.ElevationService();
 var elevation=false;
 if(elevator){
  elevator.getElevationForLocations({'locations':[ll]},function(results,status){
   if(status==google.maps.ElevationStatus.OK && results[0]){  elevation=('Altitude : '+Math.round(results[0].elevation)+' mètres'); }
   if(p.q!=''){
    html=('<div id="infowindow">'+
           '<p><b>'+$map_q.split(',').join('<br />')+'</b>'+(elevation?'<br/>'+elevation:'')+'</p>'+
           '<p class="small">Votre itinéraire vers cet emplacement<br />en partant de <input type="text" id="destination" style="width:100px;font-weight:bold;border:1px solid silver" class="small" /> <span class="u" style="cursor:pointer" onclick="CalcRoute();">calculer</span></p>'+
          '</div>');
   }
   else{$map_q='';}'';
   if(p.sll){
    var marker = new google.maps.Marker({position:new google.maps.LatLng(p.sll[0],p.sll[1]),map:$map_map,title:$map_q});
    $map_info = new google.maps.InfoWindow({'content':(html),'maxWidth':($(window).width()/3)}); $map_info.open($map_map,marker);
    google.maps.event.addListener(marker,'click',function(){ $map_info.open($map_map,marker); });
   }
 }); }
};
/// CalcRoute(){
function CalcRoute(origin){
 origin=origin==undefined?$('#infowindow input#destination').val():origin;
 var geocoder = new google.maps.Geocoder();
 var html='<div id="infowindow">'+$('#gmap #infowindow').html()+'</div>';
 geocoder.geocode({'address':origin},function(responses){
  if(responses && responses.length>1){
   var d='<div><b>Choisissez votre emplacement de départ :</b></div>';
   $.each(responses,function(i,v){
    if($.trim(origin.toLowerCase())!=v.formatted_address.toLowerCase()){ d+='<div class="res" title="'+v.formatted_address+'">• '+v.formatted_address+'</div>'; }
   });
   $map_info.setContent(html+'<div class="small" id="map_request_list">'+d+'</div>');
   $('#map_request_list>div.res').css({cursor:'pointer'}).hover(function(){$(this).css({background:'#E0E0E0'});},function(){$(this).css({background:'#fff'});}).bind('click',function(){CalcRoute($(this).attr('title'));});
  }
  else if(responses && responses.length==1){
   var directionsService = new google.maps.DirectionsService();
   var directionsDisplay = new google.maps.DirectionsRenderer();
   directionsDisplay.setMap($map_map);
   var request = {
    origin: responses[0].formatted_address,
    destination: decodeURIComponent($map_q),
    travelMode: google.maps.DirectionsTravelMode.DRIVING,
    unitSystem: google.maps.DirectionsUnitSystem.METRIC
   };
   directionsService.route(request,function(response,status){
    if(status == google.maps.DirectionsStatus.OK){
     directionsDisplay.setDirections(response);
     var route = response.routes[0];
     $map_info.setContent(html+'<div class="small">Parcours estimé en partant de <b>'+responses[0].formatted_address+'</b> à '+route.legs[0].distance.text+' en '+route.legs[0].duration.text+'</b> '+response.routes[0].warnings+'</div><a class="small u" style="color:#0000CC" target="_blank" href="http://maps.google.fr/maps?hl=fr&amp;ie=UTF8&amp;daddr='+encodeURIComponent($map_q)+'&amp;saddr='+encodeURIComponent(responses[0].formatted_address)+'&amp;t='+$map_t+'">Ouvrir la carte');
    }
    else{ $map_info.setContent(html+'<div class="small"><b>Origine non trouvée!</b></div>'); }
   });
  }
  else{ $map_info.setContent(html+'<div class="small"><b>Emplacement inconnu!</b></div>'); }
  $('#infowindow input#destination').val(origin);
 });
};
///   Param
function Param(h){
 var vars=[],hash;
 var hashes=h.slice(h.indexOf('?')+1).split('&');
 for(var i=0; i<hashes.length; i++){
  hash=hashes[i].split('=');
  vars.push(hash[0]);
  vars[hash[0]]=hash[1];
 }
 return vars;
};
function zParam(h,n){ var r=new RegExp('[\\?&]'+n+'=([^&#]*)').exec(h); $.jGrowl(n+'='); return r.length>0?(r[1]):false; };
///   Video
$.fn.Video=function()
{
 return this.each(function(){
  ins=$(this);
  var s=$allowvideo.split('x'); var flv=ins.attr('cite'); var cite=flv;
  if($('ins[cite^='+$path+'doc/]',ins)||$('ins[cite^=doc/]',ins)){ var spl=cite.split('/'); cite=(spl[spl.length-1]); flv='../doc/'+cite; }
  var o=$('<object data="shared/flvplayer.swf" type="application/x-shockwave-flash" width="'+s[0]+'px" height="'+s[1]+'px" title="'+ins.attr('title')+'" class="float'+ins.attr('datetime')+'">'
          +'<param name="movie" value="shared/flvplayer.swf" />'
          +'<param name="allowFullScreen" value="true" />'
          +'<param name="wmode" value="transparent" />'
          +'<param name="FlashVars" value="flv='+flv+'&configxml=flvconfig.xml&width='+s[0]+'&height='+s[1]+(ins.attr('id')&&ins.attr('play')?'&autoplay=1':'')+'" />'
         +'</object>');
  if(ins.attr('id')){ o.attr('id',ins.attr('id')); }
  ins.text(cite).after(o); ins.hide();
 });
};
///   Preload
$.Preload=function(a){ for(var i=0; i<a.length; i++){ var im=$('<img>').attr('src',a[i]); } };
///   SizeImg
$.SizeImg=function(i,def){
 var size=i.split('.'); size=size[0].split('_'); if(size[size.length-1].indexOf('x')>0){pos=1;}else{pos=2;} size=size[size.length-pos].split('x'); w=parseFloat(size[0]); h=parseFloat(size[1]);
 if(def){ sw=(w>h?def:(def*w/h)); sh=(h>w?def:(def*h/w)); }
 else{sw=w;sh=h;}
 return {w:parseFloat(sw),h:parseFloat(sh)};
};
///   SizeDoc
$.SizeDoc=function(i){
 var size=i.split('.'); size=size[0].split('_'); if(size[size.length-1].indexOf('ko')>0){pos=1;}else{pos=2;} size=size[size.length-pos].split('ko');
 return size[0];
};
///   MyReplace   $('a#fooid').MyReplace('<span></span>');
$.fn.MyReplace=function(r)
{
 return this.each(function()
 {
  el=$(this);
   $(this).after(r).next().html(el.html());
   for (var i = 0; i < this.attributes.length; i++){ el.next().attr(this.attributes[i].nodeName, this.attributes[i].nodeValue); }
   el.remove();
  })
};



///   FACEBOX
(function($){
 $.facebox=function(data,notdraggable){
  $.facebox.loading();
  if(data.ajax){fillFaceboxFromAjax(data.ajax);}
  else{$.facebox.reveal(data,notdraggable);}
 };
 $.extend($.facebox,{
  settings:{ faceboxHtml:true },
  loading:function(){
   init();
   if($('#facebox .loading').length==1){return true;}
   showOverlay();
   $('#facebox .content').empty();
   $('#facebox .body').children().hide().end().append('<div class="loading"></div>');
   $('#facebox')
   .css({top:(((getPageHeight()-$('#facebox').height())/3)+getPageScroll()[1]),left:(($(window).width()-$('#facebox').width())/2)}).fadeIn(200)
   .css($faceboxshadow)
   .find('.b, .bl, .br, .tl, .tr').css({opacity:0.5});
   $(document).bind('keydown.facebox',function(e){ if(e.keyCode==27){$.facebox.close();} return true; });
   $(document).trigger('loading.facebox');
  },
  reveal:function(data,notdraggable){
   $(document).trigger('beforeReveal.facebox');
   $('#facebox .content').append(data);
   $('#facebox .loading').remove();
   $('#facebox .body').children().fadeIn(200);
   $('#facebox').css({ top: (((getPageHeight()-$('#facebox').height())/3)+getPageScroll()[1]), left: (($(window).width()-$('#facebox').width())/2) });
   if(!notdraggable){
    $('#facebox .body').children()
    .bind('mousedown',function(){$(this).css({cursor:'move'});})
    .bind('mouseup',function(){$(this).css({cursor:'default'});});
    $('#facebox').draggable({opacity:0.7,delay:10,stop:function(o,ui){ $(this).css({opacity:1}).show(); }});
   }
   $(document).trigger('reveal.facebox').trigger('afterReveal.facebox');
  },
  close:function(){
   $(document).trigger('close.facebox');
   return false;
  }
 });
 function init(){
  if($.facebox.settings.inited){return true;}
  else{$.facebox.settings.inited=true;}
  $(document).trigger('init.facebox');
  $('body').append($.facebox.settings.faceboxHtml);
 };
 function getPageScroll(){
  var xScroll,yScroll;
  if(self.pageYOffset){ yScroll=self.pageYOffset; xScroll=self.pageXOffset; }
  else if(document.documentElement && document.documentElement.scrollTop){ yScroll=document.documentElement.scrollTop; xScroll=document.documentElement.scrollLeft; }
  else if(document.body){ yScroll=document.body.scrollTop; xScroll=document.body.scrollLeft; }
  return new Array(xScroll,yScroll);
 };
 function getPageHeight(){
  var windowHeight;
  if(self.innerHeight){ windowHeight=self.innerHeight; }
  else if(document.documentElement && document.documentElement.clientHeight){ windowHeight=document.documentElement.clientHeight; }
  else if(document.body){ windowHeight=document.body.clientHeight; }
  return windowHeight;
 };
 function showOverlay(){
  if($('facebox_overlay').length==0){ $('<div id="facebox_overlay"></div>').addClass("facebox_overhide").appendTo('body'); }
  $('#facebox_overlay')
  .addClass("facebox_overshow")
  .css({position:($ie6?'absolute':'fixed'),opacity:0.3})
  .click(function(){ $(document).trigger('close.facebox'); })
  .hide()
  .fadeIn(200);
  return false;
 };
 function hideOverlay(){
  $('#facebox_overlay').fadeOut(200, function(){ $("#facebox_overlay").removeClass("facebox_overshow").addClass("facebox_overhide").remove(); });
  return false;
 };
 function fillFaceboxFromAjax(href) {
   $.get(href, function(data){ $.facebox.reveal(data); });
   return false;
 };

 $(document).bind('close.facebox',function(){
  $(document).unbind('keydown.facebox');
  $('#facebox').fadeOut(200,function(){
   $('#facebox .content').empty().removeClass().addClass('content');
   hideOverlay();
   $('#facebox .loading').remove();
  })
 });
})($);
///   GetPos
$.fn.extend({GetPos:function(){
  obj=$(this).get(0);
  var curleft=obj.offsetLeft||0;
  var curtop=obj.offsetTop||0;
  while(obj=obj.offsetParent){ curleft+=obj.offsetLeft; curtop+=obj.offsetTop; }
  var curright=curleft+$(this).get(0).offsetWidth;
  var curbottom=curtop+$(this).get(0).offsetHeight;
  return {top:curtop,right:curright,bottom:curbottom,left:curleft};
}});
///   MyShake
$.fn.MyShake=function(x,t,s){
 this.each(function(){
  s=(s=='lr'||s=='rl'?1:(s=='tb'||s=='bt'?2:(s=='tlbr'||s=='ltbr'||s=='tlrb'||s=='ltrb'||s=='brtl'||s=='brlt'||s=='rbtl'||s=='rblt'?3:(s=='trbl'||s=='rtbl'||s=='trlb'||s=='rtlb'||s=='bltr'||s=='blrt'||s=='lbtr'||s=='lbrt'?4:false))));
  if(!s||$(this).queue('fx').length){return false;}
  var d=[$(this).css('position'),$(this).css('left'),$(this).css('top')];
  if(d[0]=='absolute'||d[0]=='fixed'){ var left=parseFloat(d[1]); var top=parseFloat(d[2]); $(this).css({position:d[0],left:left,top:top});}
  else{ var left=0; var top=0; $(this).css({position:'relative',left:left+'px',top:top+'px'});}
  while(x){  //$.jGrowl('left='+(left-x)+' GetPos='+$(this).GetPos().left);
   $(this)
   .animate((s==1?{left:(left-x)+'px'}:(s==2?{top:(top-x)+'px'}:(s==3?{left:(left-x)+'px',top:(top+x)+'px'}:{left:(left+x)+'px',top:(top+x)+'px'}))),t)
   .animate((s==1?{left:(left+x)+'px'}:(s==2?{top:(top+x)+'px'}:(s==3?{left:(left+x)+'px',top:(top-x)+'px'}:{left:(left-x)+'px',top:(top-x)+'px'}))),t);
   //.animate({left:x*-2},t)      /// PB de margin avec ie
   //.animate({left:x*2},t,function(){ $.jGrowl('callback='+$(this).GetPos().left); });
   x=x/1.5; if(x<0.5){x=false;   $(this).animate({left:(left)+'px',top:(top)+'px'},t,function(){$(this).css({'left':d[1],'top':d[2],'position':d[0]});}); }
 }});
 return this;
};
/// Extend animate backgroundPosition
(function($) {
 $.extend($.fx.step,{backgroundPosition:function(fx){
  if(fx.state===0&&typeof fx.end=='string'){ var start=$.curCSS(fx.elem,'backgroundPosition'); start=toArray(start); fx.start=[start[0],start[2]]; var end=toArray(fx.end); fx.end=[end[0],end[2]]; fx.unit=[end[1],end[3]]; }
  var nowPosX=[]; nowPosX[0]=((fx.end[0]-fx.start[0])*fx.pos)+fx.start[0]+fx.unit[0];
  nowPosX[1]=((fx.end[1]-fx.start[1])*fx.pos)+fx.start[1]+fx.unit[1];
  fx.elem.style.backgroundPosition=nowPosX[0]+' '+nowPosX[1];
  function toArray(strg){ strg=strg.replace(/left|top/g,'0px'); strg=strg.replace(/right|bottom/g,'100%'); strg=strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2"); var res=strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/); return[parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]]; }
 }});
})($);
///   Extend Easing "easeOutBounce"
$.extend($.easing,{ easeOutBounce:function(x,t,b,c,d){ if((t/=d)<(1/2.75)){ return c*(7.5625*t*t)+b; }else if(t<(2/2.75)){ return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b; }else if(t<(2.5/2.75)){ return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b; }else{ return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b; } } });
///   Extend caret
$.fn.extend({
 caret:function(start,end){
  var elem=this[0];
  if(typeof start=='undefined'){ if(elem.selectionStart){ start=elem.selectionStart; end=elem.selectionEnd; }else if(document.selection){ var val=this.val(); var range=document.selection.createRange().duplicate(); range.moveEnd('character',val.length); start=(range.text==''?val.length:val.lastIndexOf(range.text)); range=document.selection.createRange().duplicate(); range.moveStart('character',-val.length); end=range.text.length; } }else{ var val=this.val(); if(typeof start!='number'){start=-1;} if(typeof end!='number'){end=-1;} if(start<0){start=0;} if(end>val.length){end=val.length;} if(end<start){end=start;} if(start>end){start=end;} elem.focus(); if(elem.selectionStart){ elem.selectionStart=start; elem.selectionEnd=end; }else if(document.selection){ var range=elem.createTextRange(); range.collapse(true); range.moveStart('character',start); range.moveEnd('character',end-start); range.select(); } }
  return {start:start,end:end};
}});
///   OldBrowser
function OldBrowser(){
 var userAgent=navigator.userAgent.toLowerCase();
 if($.browser.msie&&parseInt($.browser.version, 10)<=7){ return'Internet Explorer '+$.browser.version; }
 else if($.browser.opera&&($.browser.version*10)<=95){ return'Opera '+$.browser.version; }
 else if(/firefox[\/\s](\d+\.\d+)/.test(userAgent)){ var ffversion = Number(RegExp.$1); if(ffversion<3){ return'Mozilla Firefox '+ffversion; } }
 else if(/safari[\/\s](\d+\.\d+)/.test(userAgent) && !/chrome[\/\s](\d+\.\d+)/.test(userAgent)){
  var safari=userAgent.indexOf('version');
  if(safari>-1){ var snip1=safari+8; var version=userAgent.substring(snip1,(snip1+1)); if(version<4){ return'Safari '+version; } }
 }
 else if(/chrome[\/\s](\d+\.\d+)/.test(userAgent)){
  var chrome=userAgent.indexOf('chrome');
  if(chrome>-1){ var snip1=chrome+7; var version=userAgent.substring(snip1,(snip1+1)); if(version<3){ return'Chrome '+version; } }
 }
 return false;
};


