
/* general */

var LANG = $('html').attr('lang');
var dom = window.location.hostname;

Shadowbox.loadSkin('classic', BASE_HREF+'/script/plugins/skin');
Shadowbox.loadLanguage(LANG, BASE_HREF+'/script/plugins/lang');
Shadowbox.loadPlayer(['img','iframe'], BASE_HREF+'/script/plugins/player');


function _(string) { return translate[string][LANG]; } // function to translate

/**************************** SLIDER ACTUS HOME *************************/
var BQ_CURRENT;
var tick;
var fadeOut;
var fadeIn;

function bqs_tick()
{   
	$("#actualites ul li").eq(BQ_CURRENT).animate({ left: '-420px' }, 700);
	fadeOut = setTimeout('bq_fadeOut('+BQ_CURRENT+')',700);
	fadeIn = setTimeout('bq_fadeIn()',700);
}

$(function() {  
	if( $("#actualites ul li").length > 1 ){
		BQ_CURRENT = 0;
		base = setTimeout('bqs_tick()',10000);		
	}
});
function bq_fadeIn()
{
	if( BQ_CURRENT +1 == $("#actualites ul li").length )
		BQ_CURRENT = 0;
	else
		BQ_CURRENT++;
	$("#actualites ul li").css("left","420px");		
	$("#actualites ul li").eq(BQ_CURRENT).show();
	$("#actualites ul li").eq(BQ_CURRENT).animate({ left: '0px' }, 1000);
	tick = setTimeout('bqs_tick()',10000);
}

function bq_fadeOut( BQ )
{
	$("#actualites ul li").eq(BQ_CURRENT).hide();
}




/**************************** LIENS FICHIERS OU EXTERNES *************************/

// Ajout automatique des classes/attributs sur les liens fichiers ou externes
jQuery(function(){
	var lien, ext, type, url, is_external, title;
	
	var new_window_txt = "dans une nouvelle fenêtre";

	// Quelle langue ?
	if( readCookie('lang') == 'en' )
		new_window_txt = "in a new window";

	jQuery('a').each(function(i, item) {
		// Le lien n'a pas de href ? On passe
		if (jQuery(item).hasClass('lightbox') ||
			jQuery(item).parents('h1,h3,h4,#acces-rapide,#header,#footer,#intro-message').length ||
			jQuery(item).children('img').length
		) {
			return;
		}

		var after = false;
		if( jQuery(item).parents('dt').length ){
			// on place le picto apres
			var after = true;       
		}

		// On récupère l'url du lien
		url = jQuery(item).attr('href');
		if( url == undefined )
			return;

		// C'est un lien externe ?
		is_external = is_external_url(url);

		// Récupération du type de fichier
		type = get_type(url);

		// C'est un lien externe ?
		if( is_external ){
			if( jQuery(item).attr("title") != undefined )
				title = jQuery(item).attr("title");
			else
				title = jQuery(item).text();
			jQuery(item).attr("title", title +" ("+new_window_txt+")");
			jQuery(item).attr('rel','external');
		}

		// C'est un lien externe normal
		if( is_external && !type ){
			if (after) {
				jQuery("<span class=\"external\">&nbsp;</span>").insertAfter(jQuery(item));
			}
			else {
				jQuery("<span class=\"external\">&nbsp;</span>").insertBefore(jQuery(item));
			}
		}

		// C'est un fichier 
		if( type ){			
			if (after) {
		    	jQuery("<span class=\"typeicone type"+type+"\">&nbsp;</span>").insertAfter(jQuery(item));
			}
			else{
				jQuery("<span class=\"typeicone type"+type+"\">&nbsp;</span>").insertBefore(jQuery(item));
			}

			// On ajoute le marquage des liens pdf pour les stats
			// A faire : nettoyer le lien [a-Z0-9,.;-_ ]
			
			jQuery(item).bind('click',function(e){
				if( jQuery(this).attr('rel') == "external" ){
					return;
				}
				e.preventDefault();
				e.stopPropagation();
				var url = jQuery(this).attr('href');
				window.open(url);
				return false;
	    	});
		}
	});


	// fix for target=”_blank”
	var base_href = BASE_HREF;
	jQuery("a[@rel~='external']").click(function(){
			window.open(jQuery(this).attr("href"));
	    return false;
	});
	
	insereStopAnim(); // lien d'arrêt des animations dans le footer	
	
	// Setup the tab Generator :)
  	if (typeof $.fn.tabGenerator != 'undefined') {
  		$('.partenaires').find('ul:first').addClass('navigationTab');

  		$('.partenaires').tabGenerator({
  			separator: 'h4',
  			navigation: '.navigationTab'
  		});  		
  	}

});

function get_type(url)
{
	var types = ['xls','doc','pdf','ppt','img','aud','zip','vid'];
	var i, types_nb, ext;
	var types_dt = new Array();
	
	types_dt['xls'] = ',xls,';
	types_dt['doc'] = ',doc,';
	types_dt['pdf'] = ',pdf,';
	types_dt['ppt'] = ',ppt,';
	types_dt['img'] = ',png,gif,jpeg,jpg,bmp,tiff,psd,psp,svg,xcf,ico,';
	types_dt['aud'] = ',mp3,ogg,flac,wav,aif,aiff,aifc,cda,m3u,mid,mod,mp2,snd,voc,wma,';
	types_dt['zip'] = ',zip,rar,';
	types_dt['vid'] = ',avi,wmv,qt,mkv,flv,mpg,ram,';

	types_nb = types.length;
	ext = get_extension( url );

	// C'est un fichier ?
	if( ext.length > 0 ){
		for( i = 0; i < types_nb;i++ ){
			if( types_dt[types[i]].indexOf(','+ext+',') >= 0 ){
				return( types[i] );
			}
		}
	}

	// C'est un mail ?
	if( url.indexOf('mailto:') >= 0)
		return( "mail" );
	
	return( false );
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function setCookie( name, value, expires, path, domain, secure ) 
{
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );
	
	if( expires ){
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}

function get_extension( str )
{
	if(str.charAt(str.length-1) == '/' )
		return( false );

	var pos = str.lastIndexOf( '.' );
	if( pos == -1 || str.length-pos > 4 )
		return( false );
	
	return( str.substring(pos+1) );
}


function is_external_url( url )
{
	var dom1 = dom.replace(/\./g, "\\.")
	var dom2 = dom1.replace(/\//g, "\\/")
	var pat = new RegExp("([^:]{2,6}://)?("+dom2+")?(.*)");
	
	var res;
	if (!url)
		return ( false );

	// Chemin absolu avec slash ?
	if( url && url.charAt(0) == '/' ) {
		return( false );
	}
	res = url.match(pat); 
	// Chemin relatif
	
	if( !res[1] || res[1].length == 0 ) {
		return( false );
	}
	// Url externe
	if( !res[2] || res[2].length == 0 ) {
		return( true );
	}
	
	// Sinon, lien interne
	return( false );
}

/********************* FONCTION LANCÉES AU CHARGEMENT DU DOM ********************/


// Fonctions servant à stopper toutes les animations, clignotements
// Accessibility...
function insereStopAnim() {
	if (!$('#actualites')) return;
	// var htmlStopAnim = '<ul id="footerSecondaire"><li><a id="stopAnim" href="'+window.location.href+'#" title="'+_('stopAnimation_desc')+'">'+_('stopAnimation')+'</a></li></ul>';
	var htmlStopAnim = '<p class="stopAnim"><a id="stopAnim" href="'+window.location.href+'#" title="'+_('stopAnimation_desc')+'">'+_('stopAnimation')+'</a></p>';
	$('#actualites h2').after(htmlStopAnim);
	$('#stopAnim').click(function() {
		if (window.slideshow) slideshow.cycle('stop');
		
		// stop l'anim des actus en HP 
		// supprime les timeout
		if ($("#actualites ul li")) {		  		  
		  // $("#actualites ul li").eq(BQ_CURRENT).stop(); 
		  $("#actualites ul li").eq(BQ_CURRENT).stop(true,true);  		
  		$("#actualites ul li").eq(BQ_CURRENT).css('left', '0');
  		clearTimeout(tick);
  		clearTimeout(fadeOut);
  		clearTimeout(fadeIn);  				  
		}
		
		return false;
	})
}


/**************************** ARIA *************************/

/* 
**  Plugin jQuery attrAria
**  adapté de la petite fonction simple pour commencer à utiliser ARIA...
**  renseigne les roles des zones : http://www.w3.org/TR/xhtml-role/#s_role_module_attributes
**  via http://www.lesintegristes.net/2008/12/09/introduction-a-wai-aria-traduction/
**  Params :
**  @aria-param : without the aria- prefix (ex: channel: 'notify')
**  LastChangedDate: 28 Dec 2008
*/
(function($) {
	$.fn.extend({
		attrAria: function (options) {
			var aria_keys = 'valuemin,valuemax,valuenow,valuetext,labelledby,live,polite,assertive,rude,atomic,busy,channel,relevant,required,describedby,invalid'.split(',')
			for (key in options) {
				if ($.inArray(key, aria_keys) > 0) {
					options['aria-'+key] = options[key]
					delete options[key]
				}
			}
			$(this).attr(options);
		}
	});
})(jQuery);

// Add ARIA roles to the document
function setupARIA() {
	$('#content').attrAria({ role: 'main' });
	$('#menu').attrAria({ role: 'navigation' });
	$('#header').attrAria({ role: 'banner' });
	$('#footer').attrAria({
		role: 'navigation', 
		title:_('navTitle')
	});
}



