window.addEvent('domready', function () {
	
    var szNormal = 40,
        szFull = 480,
        count = 5,
        szMax = 680;
    var centrage = count * szNormal / 2;
    var center = ((count - 1) * szNormal + szFull) / 2;
    var divs = $$(".news");
    var picts = $$(".pict");
    var logos = $$("#logo div");
    var slides = $$(".slide");
    var fx1 = new Fx.Elements(divs, {
        wait: false,
        duration: 500,
        transition: Fx.Transitions.Expo.easeOut
    });
    var fx2 = new Fx.Morph($("content"), {
        wait: false,
        duration: 1000,
        transition: Fx.Transitions.Expo.easeOut
    }); //Fx.Transitions.linear
    var fx3 = new Fx.Morph($("bulle"), {
        wait: false,
        duration: 500,
        transition: Fx.Transitions.Expo.easeOut
    });
    var logoFx = new Fx.Elements(logos, {
        wait: false,
        duration: 1500,
        transition: Fx.Transitions.Quint.easeInOut
    }); // Sine.easeOut
    var fxSlide = new Fx.Elements(slides, {
        wait: false,
        duration: 1000,
        transition: Fx.Transitions.Quint.easeInOut
    });
	var scroll = new Fx.Scroll(window, {
		wait: false,
		duration: 1500,
		offset: {'x': 0, 'y': -35},
		transition: Fx.Transitions.Quint.easeInOut 
	});
	var myLoad = new Fx.Tween($("load"), {
        wait: true,
        duration: 1500,
        transition: Fx.Transitions.Quint.easeInOut
    }); 


	var mode = new Hash.Cookie('mode');
	var lastHash = new Hash.Cookie('lastHash');
	
	if((mode.get('open')==null)) mode.set('open',false);

    fx3.addEvents({
        'start': function () {
            bouge = 1;
        },
        'complete': function () {
            bouge = 0;
        }
    });


  
    divs.each(function (div, i) {
        div.addEvent("click", iconews);
        
        function  iconews(event) {
            //location.hash = "";
            var o = {};
            var p = {};
            var q = {}; //pour logoFx
            if (div.getStyle("width").toInt() == szNormal) { //open
                div.addClass('norm');
                div.removeClass('maxsize');
				
				div.number= i;
                lastHash.set("lastHash",i);
                location.hash = i;
                last = i;
                o[i] = {
                    "width": [szNormal, szFull],
                    "height": [szNormal, szFull]
                };
                var ligne = Math.ceil(((i + 1) / count));
                var col = i + 1 - count * (ligne - 1);
                div.getElement(".pict").fade(0);
                fx3.start({
                    'opacity': -1,
                    'top': '-100px',
                    'left': '-100px'
                });
                fx2.start({
                    'top': (window.getHeight() / 2) - ((ligne - 1) * szNormal) - szFull / 2,
                    'left': (window.getWidth() / 2) - ((col - 1) * szNormal) - szFull / 2
                });

                logos.each(function (logo, i) {
                    var rx = $random(-600, 900);
                    var ry = $random(-400, 600);

                    q[i] = {
                        "margin-left": rx,
                        "margin-top": ry
                    };
                });

            } else if (div.getStyle("width").toInt() <= szFull) { //maxsize
                div.addClass('maxsize');
                div.removeClass('norm');

                location.hash = i;
                o[i] = {
                    "width": [szFull, szMax],
                    "height": [szFull, szFull]
                };

                var ligne = Math.ceil(((i + 1) / count));
                var col = i + 1 - count * (ligne - 1);
                fx3.start({
                    'opacity': -1,
                    'top': '-100px',
                    'left': '-100px'
                });
                fx2.start({
                    'top': (window.getHeight() / 2) - ((ligne - 1) * szNormal) - szFull / 2,
                    'left': (window.getWidth() / 2) - ((col - 1) * szNormal) - szMax / 2
                });

                logos.each(function (logo, i) {
                    var rx = $random(-400, 1000);
                    var ry = $random(-400, 900);

                    q[i] = {
                        "margin-left": rx,
                        "margin-top": ry
                    };
                });

            } else { // index
            
					div.removeClass('norm');
		            div.removeClass('maxsize');            
                
                logos.each(function (logo, i) {
                    q[i] = {
                        "margin-left": 0,
                        "margin-top": 0
                    };
                })
                $$(".pict").fade(1);
                o[i] = {
                    "width": [szNormal, szNormal],
                    "height": [szNormal, szNormal]
                };
                fx3.start({
                    'opacity': -1,
                    'top': '-100px',
                    'left': '-100px'
                });

                fx2.start({
                    'top': (window.getHeight() / 2) - centrage,
                    'left': (window.getWidth() / 2) - centrage
                });
            }
            //fermer les autres
            divs.each(function (other, j) {
                if (i != j) {
                    other.removeClass('norm');
		            other.removeClass('maxsize');
                    other.getElement(".pict").fade(1);
                    var w = other.getStyle('width').toInt();

                    if (w != szNormal) {
                        o[j] = {
                            'width': [w, szNormal],
                            'height': [w, szNormal]
                        };


                    }
                }
            });
            fx1.start(o);
            logoFx.start(q);


        };
    }); 
    
    /* keydown */
    

    document.addEvent("keydown", myKeyDown);

    
    
    function myKeyDown(event) {
        var vector=100;
        switch (event.key) {
        case "right":
            vector = 1;
            mod = 25;
            break;
        case "left":
            vector = -1;
            mod = 25;
            break;
        case "up":
            vector = -5;
            mod = 24;
            break;
        case "down":
            vector = 5;
            mod = 24;
            break;
        case "space":
            vector = 0;
            mod = 24;
            break;
        case "b" :
        	bomb();
        	break;    
        case "c":
  			last = (location.hash).substring(1);
  			if (last){  
		  	w = divs[last].getElement(".slide").getWidth();
        	if (!divs[last].m) divs[last].m = 0;
       		
       		  	
	      	var p=divs[last];
	        var pa = p.getElements('ul li a');
	        var mod=pa.length;
	        pa.each(function(el){
	        el.setStyle('color','#111111');
	      	});
	      	
       		var s = {};
        	divs[last].m = (divs[last].m - w + szMax) % w;
        	s[last] = {
            'margin-left': divs[last].m
        	};
        	
  			pa[(-divs[last].m/szMax)%mod].setStyle('color','#2300FF');

        	fxSlide.start(s);
        	}
        	return false;
	        break;
	     case "v":
  			last = (location.hash).substring(1);
  			if (last){  
		  	w = divs[last].getElement(".slide").getWidth();
	        if (!divs[last].m) divs[last].m = 0;
	  	
	      	var p=divs[last];
	        var pa = p.getElements('ul li a');
	        var mod=pa.length;
	        pa.each(function(el){
	        el.setStyle('color','#111111');
	      	});	        

	        var s = {};
	        divs[last].m = (divs[last].m - szMax) % w;
	        s[last] = {
	            'margin-left': divs[last].m
	        };
	        
			pa[(-divs[last].m/szMax)%mod].setStyle('color','#2300FF');

	        fxSlide.start(s);    
        	}
        	return false;
	        break;
        default:
            //return false;
        }
        if (vector!=100){
        h = (location.hash).substring(1);
        if (h != "" || h != 0) {
            (h == 19) ? mod = 25 : true;
            (h == 0 && vector == -5) ? h = 29 : true;
            (h == 29) ? mod = 25 : true;
            (h == 24 && vector == 5) ? h = 19 : true;

            h = (1 * h + vector + mod) % mod;

            divs[h].fireEvent('click', window, 0);
        } else {
            h = 0;
            divs[h].fireEvent('click', window, 0);
        }
        return false;
        }
    }; //fin key
    
    
    //bulle
    picts.each(function (pict, i) {
    if (!pict.hasClass('cross')){
    
        pict.addEvent("mouseenter", function (event) {
            var q = {};
            position = pict.getPosition();
            posContent = $("content").getPosition();
            var infotext = pict.get('text');

            $("bulle").getElement("p").set('text', infotext);

            antiMouseLeave = pict;
            fx3.start({
                'opacity': 1,
                'top': position["y"] - 25,
                'left': position["x"]
            });
		

        });



        pict.addEvent("mouseleave", function (event) {
            fx3.start({
                'opacity': 0,
                'top': position["y"] - 200,
                'left': position["x"]
            });


        });
        
    }// fin if
    
    });

    // fin bulle
    		
    /* SLIDE*/
    $$(".next").addEvent("click", function (event) {
        event.stopPropagation();
        //last = (location.hash).substring(1);
      	
      	var p=this.getParent("div");
      	var pp=p.getParent("div");
      	var last=pp.number;
        var pa = p.getElements('ul li a');
        var mod=pa.length;
        pa.each(function(el){
        el.setStyle('color','#111111');
      	});
      	
        w = divs[last].getElement(".slide").getWidth();
        if (!divs[last].m) divs[last].m = 0;
        var s = {};
        divs[last].m = (divs[last].m - szMax) % w;
        s[last] = {
            'margin-left': divs[last].m
        };
      	
		pa[(-divs[last].m/szMax)%mod].setStyle('color','#2300FF');

        fxSlide.start(s);
        return false;
    });

    $$(".prev").addEvent("click", function (event) {
        event.stopPropagation();
        //last = (location.hash).substring(1);
      	
      	var p=this.getParent("div");
      	var pp=p.getParent("div");
      	var last=pp.number;
        var pa = p.getElements('ul li a');
        var mod=pa.length;
        pa.each(function(el){
        el.setStyle('color','#111111');
      	});
      	
        w = divs[last].getElement(".slide").getWidth();
        if (!divs[last].m) divs[last].m = 0;
        var s = {};
        divs[last].m = (divs[last].m - w + szMax) % w;
        s[last] = {
            'margin-left': divs[last].m
        };
        
		pa[(-divs[last].m/szMax)%mod].setStyle('color','#2300FF');

        
        fxSlide.start(s);
        return false;
    });
	
	 $$(".info ul li a").addEvent("click", function (event) {
        event.stopPropagation();
       	
       	var p=this.getParent("div");
      	var pp=p.getParent("div");
      	var last=pp.number;
        var pa = p.getElements('ul li a');
        var mod=pa.length;
        pa.each(function(el){
        el.setStyle('color','#111111');
      	});
      	this.setStyle('color','#2300FF');
      	var paI =pa.indexOf(this);
        w = divs[last].getElement(".slide").getWidth();
        if (!divs[last].m) divs[last].m = 0;
        var s = {};
        divs[last].m = -paI*szMax;
        s[last] = {
            'margin-left': divs[last].m
        };
        fxSlide.start(s);
        return false;
    });
	
    /* fin SLIDE */

    // INI
    $$(".info").addEvent("click", function (event) {
        event.stopPropagation();
        })
    
    
    $("bulle").setStyle('opacity', 0);
	
	var prems=$$('.info ul');
	prems.each(function(el){
	el.getElement('a').setStyle('color','#2300FF');
	})
	
	
    fx2.start({
        'top': (window.getHeight() / 2) - centrage,
        'left': (window.getWidth() / 2) - centrage
    });
	
	if(!lastHash.get("lastHash")){
    last = (location.hash).substring(1);
    }else{
    last=lastHash.get("lastHash");
    }
	 //console.log("mode : "+mode.get("open"));
	 //console.log("lastHAsh : "+lastHash.get("lastHash"));

    if(mode.get("open")==false){
    if (last) divs[last].fireEvent('click', window, 1500);
	}

//link target


		$$('a').each(function(el) {
			
							

			if(el.getProperty('href')){
			if(!el.getProperty('href').contains(window.location.host))
			{
				el.setProperty('target', '_blank');
				el.addClass('external');
			}
			}
		});




//recentre

window.addEvent('resize',function(){
last = (location.hash).substring(1).toInt();

if (!last) fx2.start({
        'top': (window.getHeight() / 2) - centrage,
        'left': (window.getWidth() / 2) - centrage
    });
    
 if (last || last==0){   
 var ligne = Math.ceil(((last + 1) / count));
 var col = last + 1 - count * (ligne - 1);
   
 fx2.start({
        'top': (window.getHeight() / 2) - ((ligne - 1) * szNormal) - divs[last].getHeight() / 2,
        'left': (window.getWidth() / 2) - ((col - 1) * szNormal) - divs[last].getWidth() / 2
 	}); 
 	}
})

// load
	
	/* preloading */
	var images = $$('img');
	var imgsrc=[];
	images.each(function(el){
	imgsrc.push(el.getProperty('src'));
	});
	
	var loader = new Asset.images(imgsrc, {
		onProgress: function(counter,index) {
			var prc=(counter + 1) * (window.getWidth() / images.length).toInt();
			$("load").setStyle('left',prc);
			
		},
		onComplete: function() {
			$("load").setStyle('opacity',0);
		},
		
	});

/* bomb */
function bomb(){
	  mode.set('open',true);
	  
	  var q = {};
	  var o = {};
	  divs.setStyle('height',0);
	 $('content').setStyle('width',700);
	  
	  logos.each(function (logo, i) {
	                    q[i] = {
	                        "margin-left": 0,
	                        "margin-top": 0
	                    };
	                })
	                
	  divs.each(function (div, i) {
				          
	            div.removeClass("norm");
	            div.removeClass("maxsize")   ; 
	            div.number= i;
				div.removeEvents("click");

	                
	             if(div.getElement('.sub')) o[i] = {
	                    "width": szMax,
	                    "height": szFull,
	                    "margin-bottom": 40
	                };
	            });
	            
	            fx2.start({
	        	'top': 120,
	        	'left': (window.getWidth() / 2) - (szMax / 2)
	 			}); 
	 			
	 			$("k2000").fade(0);
	            $$(".pict").fade(0);
	            $(document.body).setStyle("overflow-y","auto");
	            
	            var fx1 = new Fx.Elements(divs, {
      					wait: false,
        				duration: 500,
    				    transition: Fx.Transitions.Expo.easeOut,
    				    onComplete: function(){
    				     last = (location.hash).substring(1);
    				     
        				if(last){
        				lastHash.set("lastHash",last);
        				scroll.toElement(divs[last]);
    						}
    					}

    					}).start(o);
	            
	            
	         
	            logoFx.start(q);
				
				document.removeEvent("keydown", myKeyDown);
				$("bomb").setStyle("background-position","-20px 0px");

				document.addEvent("keydown", myKeyBomb);
				$$(".news").setStyle("cursor","auto");
				window.removeEvents("resize");
				window.addEvent("resize",function(){
					fx2.start({
		        	'top': 120,
		        	'left': (window.getWidth() / 2) - (szMax / 2)
		 			}); 
				});
				
};

 function myKeyBomb(event) {
        switch (event.key) {
        case "b":
         mode.set('open',false);
        location.href=("");
        break;
        }
 }
 
 if(mode.get('open')==true){
	$("bomb").setStyle("background-position","-20px 0px");
	bomb();
}else{
	$("bomb").setStyle("background-position","0px 0px");

}

 $("bomb").addEvent("click",function(){
 					 //console.log("click"+mode.get('open'));
					if(mode.get('open')==false){
					$("bomb").setStyle("background-position","-20px 0px");
					bomb();
					}else{
					mode.set('open',false);
					location.href=("");
					}
				})
				
				
}); //end domready


