function init() {
	// Gestion téléphones mobiles
	mobile = false;
	if( navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iP[ao]d/i) ) {
		mobile = true;
		$('html').css('width', '1280px');
	}
	
	// Anime l'eau
	createWater();
	
	//Flag
	if ( !mobile ) createFlag();
	if ( !mobile ) createFlagAccueil();
	
	// Gère la navigation du Menu
	$.address.change(function(e){
		if(e.value == '/')   ouvre_fenetre('accueil');
		if(e.value == '/appli')   ouvre_fenetre('applicatio');
		if(e.value == '/score')   ouvre_fenetre('score');
		if(e.value == '/contact') ouvre_fenetre('contact');
	});
}

function onResize() {
	if(mobile) return;
	if($.browser.msie && $.browser.version <= 8) return;
	var nativeWidth = 1602;
	var nativeHeight = 728;
	
	var wScale = nativeWidth/innerWidth;
	var hScale = nativeHeight/innerHeight;
	
	$('#container').css('-moz-transform', 'scale(' + Math.min(1/wScale,1/hScale) + ')');
	$('#container').css('-webkit-transform', 'scale(' + Math.min(1/wScale,1/hScale) + ')');
	$('#container').css('-o-transform', 'scale(' + Math.min(1/wScale,1/hScale) + ')');
}

function ouvre_fenetre(f) {	
	ferme_pages();
	$('#'+f).css('display', 'block');
	
	if($.support.opacity) {
		$('#'+f).addClass(f);
		setTimeout(function(){
			$('#'+f).animate({opacity:1});
		}, 800);
	} else {
		$('#'+f).addClass(f);
		alert("Ne supporte pas l'opacite");
	}
}

function ferme_pages () {
	if($('#accueil').hasClass('accueil')) { $('#accueil').removeClass(); $('#accueil').css('display', 'none'); return; }	
	if($('#applicatio').hasClass('applicatio')) { $('#applicatio').removeClass(); $('#applicatio').css('display', 'none'); return; }	
	if($('#score').hasClass('score')) { $('#score').removeClass(); $('#score').css('display', 'none'); return; }		
	if($('#contact').hasClass('contact')) { $('#contact').removeClass(); $('#contact').css('display', 'none'); return; }
}

function createWater() {
	if($.browser.msie && $.browser.version <= 8) return;

	var img = new Image;
	
	img.onload = function(){
		var w = $('#eau_ondule')[0];
		if(mobile) w.width = 1280;
		else w.width = 2560;
		w.height = 349;
		if(mobile) { w.style.marginLeft = "0";
		w.style.left = "0";
		}
		var timer = doWater( w, img );
	};
	
	img.src = 'img/fond.jpg';
}


function createFlag() {
	//if($.browser.msie && $.browser.version <= 8) return;
	var img = new Image;
	
	img.onload = function(){
		var w = $('#flag')[0];
		w.width = 800;
		w.height = 160;
		var timer = doFlag( w, img );
	};
	
	img.src = 'img/drap.png';
}

function createFlagAccueil() {
	//if($.browser.msie && $.browser.version <= 8) return;
	var img = new Image;
	
	img.onload = function(){
		var w = $('#flag_accueil')[0];
		w.width = 800;
		w.height = 160;
		var timer = doFlag( w, img );
	};
	
	img.src = 'img/drapeau_accueil_scrat.png';
}


function deltas(a) {
	var lastItem = -1;
	var r = [0]
	for(var i=1;i<a.length;i++) {
		if(a[i] == undefined) a[i] = a[i-1]+1;
		r[i] = a[i] - a[i-1]; 
	}
	return r;
}

function rle(a) {
	var r = [{val:-1,len:-1}];
	
	for(var i=0;i<a.length;i++) {
		if(a[i] == undefined || a[i] == r[r.length-1].val)
			r[r.length-1].len++;
		else
			r[r.length] = {val:a[i],len:1}; 
	}
	return r;	
}

function doWater( canvas, img ){
	var period     = 200;
	var wavelength = canvas.width/10;
	var fps = 24;
	var ctx = canvas.getContext('2d');
	var w = canvas.width, h = canvas.height;
	
	ctx.drawImage(img, (mobile ? 640 : 0), 379, w, h, 0, 0, w, h);
	var y2s = [];
	
	return setInterval(function(){
		var now = (new Date)/period;
		var lastO=0,shade=0;
		var sq = 0;		
		var x0 = mobile ? 640 : 0;
		
		if(0) {
			var y = h;
			var o = h/center * (y + center*2) * Math.sin ((h/center)*(h - y)/(y + 1) + now) / h;
			canvas.style.height = Math.floor(380+o) + "px";
			return;
		}
		for (var y=0;y<h;y+=1){
		
			var amplitude = 2;
			var center = 12;
			
			var o = h/center * (y + center*2) * Math.sin ((h/center)*(h - y)/(y + 1) + now) / h;
			var y2 = y - Math.floor(o*0.0625*amplitude);
			
			if(y2<0) y2 = 0;
			else if(y2>h-2) y2 = h-2;
			
			y2s[y] = y2;
			
			if(y/h < 0.5) {
				if(!mobile) ctx.drawImage(img, x0, y2+380, w, 1, 0, y, w, 1);
			} else {
				if(!mobile) ctx.drawImage(img, x0, y2+380, w, 2, 0, y, w, 2);
				y++;
			}
		}		
		if(mobile) {
			var segments = rle(deltas(y2s));
			var y = 0;
			var y2 = y2s[y] + segments[1].val*segments[1].len;
			for(var i=2;i<segments.length;i++) {
				var len = segments[i].len;
				if(i%3==0) ctx.drawImage(img, x0, y2+379, w, len, 0, y, w, len);
				y += len;
				y2 += len * segments[i].val;
			}
		}
	},1000/fps);
}



function doFlag( canvas, img ){
	var period = 200;
	var wavelength = canvas.height/10;
	var fps = 24;
	var ctx = canvas.getContext('2d');
	var w = canvas.width, h = canvas.height;
	
	//ctx.drawImage(img, 0, 0);
	var y2s = [];
	
	return setInterval(function(){
		var now = (new Date) / period;
		var lastO = 0, shade = 0;
		var sq = 0;
		
		ctx.clearRect (0, 0, 800, 160);
		/*if(0) {
			var y = w;
			var o = w/center * (y + center*2) * Math.sin ((w/center)*(w - y)/(y + 1) + now) / w;
			canvas.style.width = Math.floor(800+o) + "px";
			return;
		}*/
		for ( var y=0; y < w; y += 1 ) {
			var amplitude = 2;
			var center = 12;
			
			var o = h/center * (y + center*2) * Math.sin ((h/center)*(h - y)/(y + 1) + now) / h;
			var y2 = y - Math.floor(o*0.0625*amplitude);
			
			if ( y2 < 0 ) y2 = 0;
			else if ( y2 > w-2 ) y2 = w - 2;
			
			if( y/h < 0.5 ) {
				if(!mobile) ctx.drawImage(img, y2, 0, 1, h, y, 0, 1, h);
			} else {
				if(!mobile) ctx.drawImage(img, y2, 0, 2, h, y, 0, 2, h);
				y++;
			}
		}
	},1000/fps);
	
}


/**** MENU ****/

	$('a#btn_gallery').click(function () {
		if($('div.liste_score1').hasClass('ouvert')) {
			fermer_tout2();
		}
		else {
			if($('div').hasClass('ouvert')) fermer_tout();
			$('div.liste_score1').slideToggle('medium', "easeOutBounce").addClass('ouvert');
			$('img.image_part1').addClass('select');
		}
    });
	function fermer_tout2() {
		$('div.visible').slideToggle('medium', "easeOutBounce").removeClass('visible');
		$('img.select').removeClass('select');
	}







/**** SCORE *****/

    $("#score div.img").addClass("no_select"); //ajoute la classe "non selectionnee" aux div
	
	$('div.image_part1').click(function () {
		if($('div.liste_score1').hasClass('ouvert')) {
			fermer_tout();
		}
		else {
			if($('div').hasClass('ouvert')) fermer_tout();
			$('div.liste_score1').slideToggle('medium', "easeOutBounce").addClass('ouvert');
			$('div.image_part1').addClass('select');
		}
    });
    $('div.image_part2').click(function () {
		if($('div.liste_score2').hasClass('ouvert')) {
			fermer_tout();
		}
		else {
			if($('div').hasClass('ouvert')) fermer_tout();
			$('div.liste_score2').slideToggle('medium', "easeOutBounce").addClass('ouvert');
			$('div.image_part2').addClass('select');
		}
    });
    $('div.image_part3').click(function () {
		if($('div.liste_score3').hasClass('ouvert')) {
			fermer_tout();
		}
		else {
			if($('div').hasClass('ouvert')) fermer_tout();
			$('div.liste_score3').slideToggle('medium', "easeOutBounce").addClass('ouvert');
			$('div.image_part3').addClass('select');
		}
    });
    $('div.image_part4').click(function () {
		if($('div.liste_score4').hasClass('ouvert')) {
			fermer_tout();
		}
		else {
			if($('div').hasClass('ouvert')) fermer_tout();
			$('div.liste_score4').slideToggle('medium', "easeOutBounce").addClass('ouvert');
			$('div.image_part4').addClass('select');
		}
    });
    $('div.image_part5').click(function () {
		if($('div.liste_score5').hasClass('ouvert')) {
			fermer_tout();
		}
		else {
			if($('div').hasClass('ouvert')) fermer_tout();
			$('div.liste_score5').slideToggle('medium', "easeOutBounce").addClass('ouvert');
			$('div.image_part5').addClass('select');
		}
    });
	$('div.image_part6').click(function () {
		if($('div.liste_score6').hasClass('ouvert')) {
			fermer_tout();
		}
		else {
			if($('div').hasClass('ouvert')) fermer_tout();
			$('div.liste_score6').slideToggle('medium', "easeOutBounce").addClass('ouvert');
			$('div.image_part6').addClass('select');
		}
    });
	function fermer_tout() {
		$('div.ouvert').slideToggle('medium', "easeOutBounce").removeClass('ouvert');
		$('div.select').removeClass('select');
	}
	/*$('ul.liste_score li a').mouseover(function () {
		$(this).animate({ fontSize: "14px", paddingLeft: "20px" }, 50 );
    });
	$('ul.liste_score li a').mouseout(function () {
		$(this).animate({ fontSize: "12px", paddingLeft: "10px" }, 50 );
    });*/



$(init);
