// main
function linkHome(logo){var title;if(title=$(logo).attr('title')){$(logo).append('<span>'+title+'</span>');}}
function animateNav(){$(".nav a").css({backgroundImage:"none"}).append('<span></span>');$(".nav li:not(.current) a span").css("opacity","0");$(".nav li:not(.current) a").hover(function(){$(this).children('span').stop().fadeTo('fast',0.6);},function(){$(this).children('span').stop().fadeTo('400',0);});}
function gallery(){$('h3.gallery').addClass('hide');$('ul.gallery').before('<ul id="gallery"></ul>').css("position","relative");$('ul.gallery li').each(function(i){++i;if(i==1){$(this).addClass('current');};var _fadeTo=$(this).is('.current')?'1':'0.3';$(this).addClass("th"+i).children('a').css('opacity','0').fadeTo('slow',_fadeTo);$('a',this).hover(function(){$(this).stop().fadeTo('fast',1);},function(){if(!$(this).parent('li.current').length)$(this).stop().fadeTo('fast',0.3);});$('#gallery').append('<li id="th'+i+'"><img src="'+$(this).children('a').attr('href')+'" /></li>');$('#gallery li').css('display','none').filter('li:first').addClass('current').fadeIn(500);$('a',this).attr('href','#th'+i).bind('click',function(){if(!$(this).parent('.current').length){$('ul.gallery li.current').removeClass('current').children('a').fadeTo('400',0.3);$(this).parent('li').addClass('current').children('a').fadeTo('400',1);var thumbId=$(this).attr('href');$('#gallery li.current').removeClass('current').fadeOut(1000);$(thumbId).addClass('current').fadeIn(1000);}});});if($('ul.gallery li').length==1){$('ul.gallery').addClass('hide');}}
function liveSearch()
{if(!$('.searchArticles').length==0){$('.searchArticles .categories').remove();$('.searchArticles').prepend('<div class="appleSearch"><label for="liveSearch">Filtrer les articles</label><input type="text" id="liveSearch" name="liveSearch" value=""></div>');$('.searchArticles #liveSearch').liveUpdate('.posts').focus();}}
function tabs()
{var hash=window.location.hash;var current=(hash)?hash:'#intro';$('#labs .main div.description:not('+current+')').hide();$('#labs ul.products a').bind('click',function(){$('#labs ul.products a.current').removeClass('current');var id=$(this).addClass('current').attr('href');$('#labs .main div').hide('fast');$(id).show('fast');return false;});}
function animateTabs()
{$('#labs ul.products a').hover(function(){$(this).stop().animate({backgroundPosition:"642px 0"},300);},function(){$(this).stop().animate({backgroundPosition:"321px 0"},300);});}
function rollOverLi(list){if($(list).length!=0){$(list+' li').css("cursor","pointer").hover(function(){$(this).addClass('hover');},function(){$(this).removeClass('hover');}).click(function(){window.location.href=$('a:first',this).attr('href');});}}
$(document).ready(function(){animateNav();linkHome('#header .logo a');rollOverLi('ul.latestArticles');gallery();liveSearch();animateTabs();$("#footer a.popup").fancybox({'overlayShow':true,'overlayOpacity':0.8});});

// fancybox 1.0.0
(function($){var opts={},imgPreloader=new Image,imgTypes=['png','jpg','jpeg','gif'],loadingTimer,loadingFrame=1;$.fn.fancybox=function(settings){opts.settings=$.extend({},$.fn.fancybox.defaults,settings);$.fn.fancybox.init();return this.each(function(){var $this=$(this);var o=$.metadata?$.extend({},opts.settings,$this.metadata()):opts.settings;$this.unbind('click').click(function(){$.fn.fancybox.start(this,o);return false;});});};$.fn.fancybox.start=function(el,o){if(opts.animating)return false;if(o.overlayShow){$("#fancy_wrap").prepend('<div id="fancy_overlay"></div>');$("#fancy_overlay").css({'width':$(window).width(),'height':$(document).height(),'opacity':o.overlayOpacity});if($.browser.msie){$("#fancy_wrap").prepend('<iframe id="fancy_bigIframe" scrolling="no" frameborder="0"></iframe>');$("#fancy_bigIframe").css({'width':$(window).width(),'height':$(document).height(),'opacity':0});}
$("#fancy_overlay").click($.fn.fancybox.close);}
opts.itemArray=[];opts.itemNum=0;if(jQuery.isFunction(o.itemLoadCallback)){o.itemLoadCallback.apply(this,[opts]);var c=$(el).children("img:first").length?$(el).children("img:first"):$(el);var tmp={'width':c.width(),'height':c.height(),'pos':$.fn.fancybox.getPosition(c)};for(var i=0;i<opts.itemArray.length;i++){opts.itemArray[i].o=$.extend({},o,opts.itemArray[i].o);if(o.zoomSpeedIn>0||o.zoomSpeedOut>0){opts.itemArray[i].orig=tmp;}}}else{if(!el.rel||el.rel==''){var item={url:el.href,title:el.title,o:o};if(o.zoomSpeedIn>0||o.zoomSpeedOut>0){var c=$(el).children("img:first").length?$(el).children("img:first"):$(el);item.orig={'width':c.width(),'height':c.height(),'pos':$.fn.fancybox.getPosition(c)};}
opts.itemArray.push(item);}else{var arr=$("a[@rel="+el.rel+"]").get();for(var i=0;i<arr.length;i++){var tmp=$.metadata?$.extend({},o,$(arr[i]).metadata()):o;var item={url:arr[i].href,title:arr[i].title,o:tmp};if(o.zoomSpeedIn>0||o.zoomSpeedOut>0){var c=$(arr[i]).children("img:first").length?$(arr[i]).children("img:first"):$(el);item.orig={'width':c.width(),'height':c.height(),'pos':$.fn.fancybox.getPosition(c)};}
if(arr[i].href==el.href)opts.itemNum=i;opts.itemArray.push(item);}}}
$.fn.fancybox.changeItem(opts.itemNum);};$.fn.fancybox.changeItem=function(n){$.fn.fancybox.showLoading();opts.itemNum=n;$("#fancy_nav").empty();$("#fancy_outer").stop();$("#fancy_title").hide();$(document).unbind("keydown");imgRegExp=imgTypes.join('|');imgRegExp=new RegExp('\.'+imgRegExp+'$','i');var url=opts.itemArray[n].url;if(url.match(/#/)){var target=window.location.href.split('#')[0];target=url.replace(target,'');$.fn.fancybox.showItem('<div id="fancy_div">'+$(target).html()+'</div>');$("#fancy_loading").hide();}else if(url.match(imgRegExp)){$(imgPreloader).unbind('load').bind('load',function(){$("#fancy_loading").hide();opts.itemArray[n].o.frameWidth=imgPreloader.width;opts.itemArray[n].o.frameHeight=imgPreloader.height;$.fn.fancybox.showItem('<img id="fancy_img" src="'+imgPreloader.src+'" />');}).attr('src',url+'?rand='+Math.floor(Math.random()*999999999));}else{$.fn.fancybox.showItem('<iframe id="fancy_frame" onload="$.fn.fancybox.showIframe()" name="fancy_iframe'+Math.round(Math.random()*1000)+'" frameborder="0" hspace="0" src="'+url+'"></iframe>');}};$.fn.fancybox.showIframe=function(){$("#fancy_loading").hide();$("#fancy_frame").show();};$.fn.fancybox.showItem=function(val){$.fn.fancybox.preloadNeighborImages();var viewportPos=$.fn.fancybox.getViewport();var itemSize=$.fn.fancybox.getMaxSize(viewportPos[0]-50,viewportPos[1]-100,opts.itemArray[opts.itemNum].o.frameWidth,opts.itemArray[opts.itemNum].o.frameHeight);var itemLeft=viewportPos[2]+Math.round((viewportPos[0]-itemSize[0])/2)-20;var itemTop=viewportPos[3]+Math.round((viewportPos[1]-itemSize[1])/2)-40;var itemOpts={'left':itemLeft,'top':itemTop,'width':itemSize[0]+'px','height':itemSize[1]+'px'};if(opts.active){$('#fancy_content').fadeOut("normal",function(){$("#fancy_content").empty();$("#fancy_outer").animate(itemOpts,"normal",function(){$("#fancy_content").append($(val)).fadeIn("normal");$.fn.fancybox.updateDetails();});});}else{opts.active=true;$("#fancy_content").empty();if($("#fancy_content").is(":animated")){console.info('animated!');}
if(opts.itemArray[opts.itemNum].o.zoomSpeedIn>0){opts.animating=true;itemOpts.opacity="show";$("#fancy_outer").css({'top':opts.itemArray[opts.itemNum].orig.pos.top-18,'left':opts.itemArray[opts.itemNum].orig.pos.left-18,'height':opts.itemArray[opts.itemNum].orig.height,'width':opts.itemArray[opts.itemNum].orig.width});$("#fancy_content").append($(val)).show();$("#fancy_outer").animate(itemOpts,opts.itemArray[opts.itemNum].o.zoomSpeedIn,function(){opts.animating=false;$.fn.fancybox.updateDetails();});}else{$("#fancy_content").append($(val)).show();$("#fancy_outer").css(itemOpts).show();$.fn.fancybox.updateDetails();}}};$.fn.fancybox.updateDetails=function(){$("#fancy_bg,#fancy_close").show();if(opts.itemArray[opts.itemNum].title!==undefined&&opts.itemArray[opts.itemNum].title!==''){$('#fancy_title div').html(opts.itemArray[opts.itemNum].title);$('#fancy_title').show();}
if(opts.itemArray[opts.itemNum].o.hideOnContentClick){$("#fancy_content").click($.fn.fancybox.close);}else{$("#fancy_content").unbind('click');}
if(opts.itemNum!=0){$("#fancy_nav").append('<a id="fancy_left" href="javascript:;"></a>');$('#fancy_left').click(function(){$.fn.fancybox.changeItem(opts.itemNum-1);return false;});}
if(opts.itemNum!=(opts.itemArray.length-1)){$("#fancy_nav").append('<a id="fancy_right" href="javascript:;"></a>');$('#fancy_right').click(function(){$.fn.fancybox.changeItem(opts.itemNum+1);return false;});}
$(document).keydown(function(event){if(event.keyCode==27){$.fn.fancybox.close();}else if(event.keyCode==37&&opts.itemNum!=0){$.fn.fancybox.changeItem(opts.itemNum-1);}else if(event.keyCode==39&&opts.itemNum!=(opts.itemArray.length-1)){$.fn.fancybox.changeItem(opts.itemNum+1);}});};$.fn.fancybox.preloadNeighborImages=function(){if((opts.itemArray.length-1)>opts.itemNum){preloadNextImage=new Image();preloadNextImage.src=opts.itemArray[opts.itemNum+1].url;}
if(opts.itemNum>0){preloadPrevImage=new Image();preloadPrevImage.src=opts.itemArray[opts.itemNum-1].url;}};$.fn.fancybox.close=function(){if(opts.animating)return false;$(imgPreloader).unbind('load');$(document).unbind("keydown");$("#fancy_loading,#fancy_title,#fancy_close,#fancy_bg").hide();$("#fancy_nav").empty();opts.active=false;if(opts.itemArray[opts.itemNum].o.zoomSpeedOut>0){var itemOpts={'top':opts.itemArray[opts.itemNum].orig.pos.top-18,'left':opts.itemArray[opts.itemNum].orig.pos.left-18,'height':opts.itemArray[opts.itemNum].orig.height,'width':opts.itemArray[opts.itemNum].orig.width,'opacity':'hide'};opts.animating=true;$("#fancy_outer").animate(itemOpts,opts.itemArray[opts.itemNum].o.zoomSpeedOut,function(){$("#fancy_content").hide().empty();$("#fancy_overlay,#fancy_bigIframe").remove();opts.animating=false;});}else{$("#fancy_outer").hide();$("#fancy_content").hide().empty();$("#fancy_overlay,#fancy_bigIframe").fadeOut("fast").remove();}};$.fn.fancybox.showLoading=function(){clearInterval(loadingTimer);var pos=$.fn.fancybox.getViewport();$("#fancy_loading").css({'left':((pos[0]-40)/2+pos[2]),'top':((pos[1]-40)/2+pos[3])}).show();$("#fancy_loading").bind('click',$.fn.fancybox.close);loadingTimer=setInterval($.fn.fancybox.animateLoading,66);};$.fn.fancybox.animateLoading=function(el,o){if(!$("#fancy_loading").is(':visible')){clearInterval(loadingTimer);return;}
$("#fancy_loading > div").css('top',(loadingFrame*-40)+'px');loadingFrame=(loadingFrame+1)%12;};$.fn.fancybox.init=function(){if(!$('#fancy_wrap').length){$('<div id="fancy_wrap"><div id="fancy_loading"><div></div></div><div id="fancy_outer"><div id="fancy_inner"><div id="fancy_nav"></div><div id="fancy_close"></div><div id="fancy_content"></div><div id="fancy_title"></div></div></div></div>').appendTo("body");$('<div id="fancy_bg"><div class="fancy_bg fancy_bg_n"></div><div class="fancy_bg fancy_bg_ne"></div><div class="fancy_bg fancy_bg_e"></div><div class="fancy_bg fancy_bg_se"></div><div class="fancy_bg fancy_bg_s"></div><div class="fancy_bg fancy_bg_sw"></div><div class="fancy_bg fancy_bg_w"></div><div class="fancy_bg fancy_bg_nw"></div></div>').prependTo("#fancy_inner");$('<table cellspacing="0" cellpadding="0" border="0"><tr><td id="fancy_title_left"></td><td id="fancy_title_main"><div></div></td><td id="fancy_title_right"></td></tr></table>').appendTo('#fancy_title');}
if($.browser.msie){$("#fancy_inner").prepend('<iframe id="fancy_freeIframe" scrolling="no" frameborder="0"></iframe>');}
if(jQuery.fn.pngFix)$(document).pngFix();$("#fancy_close").click($.fn.fancybox.close);};$.fn.fancybox.getPosition=function(el){var pos=el.offset();pos.top+=$.fn.fancybox.num(el,'paddingTop');pos.top+=$.fn.fancybox.num(el,'borderTopWidth');pos.left+=$.fn.fancybox.num(el,'paddingLeft');pos.left+=$.fn.fancybox.num(el,'borderLeftWidth');return pos;};$.fn.fancybox.num=function(el,prop){return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;};$.fn.fancybox.getPageScroll=function(){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[xScroll,yScroll];};$.fn.fancybox.getViewport=function(){var scroll=$.fn.fancybox.getPageScroll();return[$(window).width(),$(window).height(),scroll[0],scroll[1]];};$.fn.fancybox.getMaxSize=function(maxWidth,maxHeight,imageWidth,imageHeight){var r=Math.min(Math.min(maxWidth,imageWidth)/imageWidth,Math.min(maxHeight,imageHeight)/imageHeight);return[Math.round(r*imageWidth),Math.round(r*imageHeight)];};$.fn.fancybox.defaults={hideOnContentClick:false,zoomSpeedIn:500,zoomSpeedOut:500,frameWidth:600,frameHeight:400,overlayShow:false,overlayOpacity:0.4,itemLoadCallback:null};})(jQuery);

// score 1.0
jQuery.score=function(needle,haystack,offset)
{offset=offset||0;var controllString=function(strVar)
{if(typeof strVar==="number")
{strVar=strVar.toString();}
if(typeof strVar!=="string")
{throw("Type error");}
return strVar.toLowerCase();};try{needle=controllString(needle);haystack=controllString(haystack);}catch(exception)
{return 0;}
var sub_needle;var index;var c;var i=0;var j;var next_string;var next_needle;var remaining_score;var score;if(needle.length==0)
{return 0.9;}
if(needle.length>haystack)
{return 0;}
for(i=needle.length;i>0;i--)
{sub_needle=needle.substring(0,i);index=haystack.indexOf(sub_needle);if(-1===index||(index+needle.length)>haystack.length+offset)
{continue;}
next_string=haystack.substring(index+sub_needle.length);next_needle=(i>=needle.length)?'':needle.substring(i);remaining_score=jQuery.score(next_needle,next_string,offset+index);if(0<remaining_score)
{score=haystack.length-next_string.length;if(0!==index)
{j=0;c=haystack.charCodeAt(index-1);if(32===c||9===c)
{for(j=(index-2);j>=0;j--)
{c=haystack.charCodeAt(j);score-=(c===32||c===9)?1:0.15;}}
else
{score-=index;}}
score+=remaining_score*next_string.length;score/=haystack.length;return score;}}
return 0;};

// strong 1.0
jQuery.fn.strong=function(str2strong,settings)
{settings=jQuery.extend({tag:"strong",className:"jq-strong",caseSensitive:false,separateLetters:false},settings);if(!settings.caseSensitive){str2strong=str2strong.toLowerCase();}
if(0===str2strong.length){return this;}
if(settings.separateLetters)
{var _str2strongArr=[];for(var i=str2strong.length-1;i>=0;i--)
{if(jQuery.inArray(str2strong[i],_str2strongArr)==-1)
{_str2strongArr[_str2strongArr.length]=str2strong[i];}}
_str2strongArr=_str2strongArr.join("|");}
else
{var _str2strongArr=str2strong;}
_str2strongArr=(settings.caseSensitive)?new RegExp(_str2strongArr,"g"):new RegExp(_str2strongArr,"gi");var _openTag="<"+settings.tag;if(0<settings.className.length){_openTag+=" class=\""+settings.className+"\"";}
_openTag+=">";var _closeTag="</"+settings.tag+">";var _concatReg=new RegExp(_closeTag+_openTag,"g");function _getTextNodes(node)
{var textNodeList=[];var result,i,j;if(3===node.nodeType)
{textNodeList[textNodeList.length]=node;return textNodeList;}
if(1!==node.nodeType){return false;}
if(node.hasChildNodes())
{jQuery.each(node.childNodes,function(index,val){var result=_getTextNodes(val);if(false!==result)
{jQuery.each(result,function(index,val){textNodeList[textNodeList.length]=val;});}});}
return textNodeList;};function addStrongTag(match)
{return _openTag+match+_closeTag;};return this.each(function()
{var textNode,chr2strong,modified=false;jQuery(this).data("strongSetting",{tag:settings.tag,className:settings.className});jQuery(this).unstrong();var textNodeList=_getTextNodes(this);jQuery.each(textNodeList,function(index,val){var newString=val.nodeValue.replace(_str2strongArr,addStrongTag).replace(_concatReg,"");if(val.nodeValue!==newString)
{jQuery(val).replaceWith(newString);}});});};jQuery.fn.unstrong=function(settings)
{settings=jQuery.extend({tag:"strong",className:"jq-strong"},settings);_concatTextNodesNeighbours=function(node)
{var child;if(!node.hasChildNodes()){return;}
for(var i=0,childrenNb=node.childNodes.length;i<childrenNb;i++)
{child=node.childNodes[i];if(3===child.nodeType&&child.nextSibling&&3===child.nextSibling.nodeType)
{child.nodeValue=child.nodeValue+child.nextSibling.nodeValue;node.removeChild(child.nextSibling);_concatTextNodesNeighbours(node);return;}}};
return this.each(function()
{var localSettings=jQuery.data(this,"strongSetting")?jQuery.data(this,"strongSetting"):settings;jQuery(localSettings.tag+"."+localSettings.className,this).each(function(index,node){var parent=node.parentNode;jQuery(node).replaceWith(jQuery(node).text());_concatTextNodesNeighbours(parent);});});};

// liveUpdate 1.0
jQuery.fn.liveUpdate=function(list)
{list=jQuery(list);if(list.length)
{var rows=list.children('li'),cache=rows.map(function(){this.liveUpdateParent=this.parentNode;return{titre:jQuery("a:first",this).text().toLowerCase(),properties:jQuery("ul",this).text().toLowerCase()};});this.keyup(filter).parents('form').submit(function(){return false;});}
return this;function filter()
{var term=jQuery.trim(jQuery(this).val().toLowerCase()),scores=[];list.children('li').remove();if(!term)
{jQuery.each(rows,function(){jQuery(this.liveUpdateParent).append(this);});return;}
cache.each(function(i){var score=jQuery.score(term,this.titre.toString())*1.5+jQuery.score(term,this.properties.toString());if(score>0){scores.push({score:score,node:i});}});jQuery.each(scores.sort(function(a,b){return b.score-a.score;}),function(){jQuery(rows[this.node].liveUpdateParent).append(rows[this.node]);});list.strong(term,{separateLetters:true});}};
