var myrules = {
	
	'.geo_btn_information' : function(bouton_information){//btn pour afficher information de lhorloge
		bouton_information.onclick=function(){
	  		geo_texte=$('geo_textedemo').innerHTML;
			$('geo_information').update(geo_texte);
			$('geo_information').style.backgroundImage="url(media/img/geo/infos.png)";
			$('geo_information').style.zIndex="451";
			$('geo_btn_information').style.zIndex="100";
			$('geo_information').style.marginLeft="0px";
			$('geo_information').style.marginTop="0px";
			new Effect.Grow($('geo_information'),{
				direction:'top-left',
				style:"margin-left:0px; margin-top:0px;",
				afterFinish:function(){
					$('geo_information').style.marginLeft="0px";
					$('geo_information').style.marginTop="0px";
					$('fermer').style.backgroundImage="url(media/img/geo/btn_fermer.png)";
					$('fermer').style.zIndex="461";
				}
			});
		}
	},
	
	'.geo_btn_fermer': function(bouton_fermer){//ferme le commentaire information de lhorloge
		bouton_fermer.onclick=function(){
			new Effect.Fade($('geo_information'));
			$('fermer').style.backgroundImage="url()";
			$('fermer').style.zIndex="100";
			$('geo_information').style.zIndex="100";
			$('geo_btn_information').style.zIndex="451";
		}
	},
	
	'.geo_btn_autresvilles':function(bouton_villes){//apres choix de la ville dans liste deroulante
		bouton_villes.onchange=function(){
			clearTimeout(nomicone);
			scrollTo(0,0);
			new Effect.Appear($('cache'));
			new Effect.Fade($('soleil'));
			new Effect.Fade($('lune'));
			new Effect.Fade($('nuage'));
			new Effect.Fade($('pluie'));
			new Effect.Fade($('neige'));
			new Effect.Fade($('eclair'));
			new Effect.Fade($('grele'));		
			new Effect.Fade($('geolocal_1_5'));
			new Effect.Fade($('geolocal_1_6'));
			new Effect.Fade($('geolocal_2'));
			new Effect.Fade($('geolocal_3'),{
				afterFinish:function(){
					$('stopattente1_4').style.backgroundImage = "url(media/img/imageaction/attente_noir.gif)";
					$('stopattente1_5').style.backgroundImage = "url(media/img/imageaction/attente_noir.gif)";
					$('stopattente1_6').style.backgroundImage = "url(media/img/imageaction/attente_noir.gif)";
					$('stopattente2').style.backgroundImage = "url(media/img/imageaction/attente_noir.gif)";
					$('stopattente3').style.backgroundImage = "url(media/img/imageaction/attente_noir.gif)";
					var ville = $('autres');
					var ville = '&villegeo='+ville.value;
					geo_testville(ville);
					new Effect.Appear($('attente_msg'));
					new Effect.Appear($('attente_horloge'),{
						afterFinish:function(){ setTimeout(function(){attentefini()}, 10000); }
					});
				}
			});	
		}
	},
		
	'.horloge' : function(btn_horloge){//demos geo code exp horloge
		btn_horloge.onclick=function(){
			$('codeexport').innerHTML=HTML_horloge;
			new Effect.Appear($('codehorloge'));
			new Effect.Fade($('horloge'));
		}
	}	
};

function adresseip(){
	user = java.net.InetAddress.getLocalHost();
	ip = user.getHostAddress(); 
	return ip;
}

function lancementgeo(){//tache maxmind : ip-ville
	new Effect.Appear($('geolocal_1_1'),{
		afterFinish:function(){
			//MAXMIND
		
			/* new Ajax.Request(urltask, {//recupere la ville par rapport a l ip
				asynchronous: 'true',
				postBody: 'tache=demos/geo/maxmind',
				onComplete: function(xhr)
				{
					var result = treatTaskMsg(xhr.responseText);
					if(result == true)
					{
						ville = xhr.responseText.substr(13);
						villegeo="&villegeo="+ville;
						$('stopattente1_1').style.backgroundImage = "url(media/img/imageaction/ok.png)";
						geo_testville(villegeo);
					}
				}
			});*/
			villegeo="&villegeo=aigueperse";
			$('stopattente1_1').style.backgroundImage = "url(media/img/imageaction/ok.png)";
			geo_testville(villegeo);
		}
	});
}
function geo_testville(villegeo){//test existance de la ville dans vignettes
	new Effect.Appear($('geolocal_1_2'),{
		afterFinish:function(){
			new Ajax.Request(urltask, {
				asynchronous: 'true',
				postBody: 'tache=demos/geo/testville'+villegeo,
				onComplete: function(xhr)
				{
					var result = treatTaskMsg(xhr.responseText);
					if(result == true)
					{
						ville = xhr.responseText.substr(13);
						if(ville)//si oui
						{
							$('imageresultat').src = "media/img/geo/vignettes/"+ville+".png";
							geo_traitementcanvas(villegeo,ville);
							$('stopattente1_2').style.backgroundImage = "url(media/img/imageaction/ok.png)";
						}else{//si non recupere les images et traitement des vignettes
							$('temps').update("cette étape prend plusieurs secondes");
							new Ajax.Request(urltask, {
								asynchronous: 'true',
								postBody: 'tache=demos/geo/photoville'+villegeo,
								onComplete: function(xhr)
								{
									var result = treatTaskMsg(xhr.responseText);
									if(result == true)
									{
										ville = xhr.responseText.substr(13);
										$('imageresultat').src = "media/img/geo/vignettes/"+ville+".png";
										geo_traitementcanvas(villegeo,ville);
										$('stopattente1_2').style.backgroundImage = "url(media/img/imageaction/ok.png)";
									}
								}
							});
						}
					}
				}
			});
		}
	});
}

function geo_traitementcanvas(villegeo,ville){//demos geo appel canvas
	new Effect.Appear($('geolocal_1_3'),{
		afterFinish:function(){
			$('stopattente1_3').style.backgroundImage = "url(media/img/imageaction/ok.png)";
			geo_insertionimage(villegeo,ville);
		}
	});
}

function geo_insertionimage(villegeo,ville){//demos geo appel temp
	new Effect.Appear($('geolocal_1_4'),{						
		afterFinish:function(){
			$('stopattente1_4').style.backgroundImage = "url(media/img/imageaction/ok.png)";
			geo_temperature(villegeo,ville);
		}
	});
}

function geo_temperature(villegeo,ville){	//demos geo tache temperature
	new Effect.Appear($('geolocal_1_5'),{					
		afterFinish:function(){
			//enleve les diff temps pour les nouveau
			$('soleil').style.backgroundImage = "url()";
			$('lune').style.backgroundImage = "url()";
			$('nuage').style.backgroundImage = "url()";
			$('pluie').style.backgroundImage = "url()";
			$('neige').style.backgroundImage = "url()";
			$('eclair').style.backgroundImage = "url()";
			$('grele').style.backgroundImage = "url()";	
			new Ajax.Request(urltask, {//recupere la temperature de la ville
				asynchronous: 'true',
				postBody: 'tache=demos/geo/demos'+villegeo,
				onComplete: function(xhr)
				{
					weath=xhr.responseText.substr(13);
					tabweath = weath.split("|");
					tabpartps = tabweath[1].split(",");
					for(i=0;i<tabpartps.length;i++){
						if(tabpartps[i]){
							$(tabpartps[i]).style.backgroundImage = "url(media/img/geo/temps/"+tabpartps[i]+".png)";
						}
					}
					
					geo_calques(tabweath[0],ville);
					$('stopattente1_5').style.backgroundImage = "url(media/img/imageaction/ok.png)";
				}
			});
		}
	});
}

function geo_calques(temperature,ville){//demos geo tache calques
	temper="&temperature="+temperature;
	new Effect.Appear($('geolocal_1_6'),{						
		afterFinish:function(){
			new Ajax.Request(urltask, {//creer les differents transparents suivant la temperature
				asynchronous: 'true',
				postBody: 'tache=demos/geo/zonegeo'+temper,
				onComplete: function(xhr)
				{
					couleur=xhr.responseText.substr(13);
					$('stopattente1_6').style.backgroundImage = "url(media/img/imageaction/ok.png)";
					geo_timestamp(ville,couleur,temperature);
				}
			});
		}
	});
}

function geo_timestamp(ville,couleur,temperature){//demos geo timestamp
	new Effect.Appear($('geolocal_2'),{						
		afterFinish:function(){
			$('stopattente2').style.backgroundImage = "url(media/img/imageaction/ok.png)";
			new Effect.Appear($('geolocal_3'),{					
				afterFinish:function(){
					new Effect.Appear($('georesultat'),{
						afterFinish:function(){
							nomville=ville.toUpperCase();
							$('nomville').update(nomville+" / "+temperature+"°");
							geo_calqcouleur(couleur); //avec 1 calque par vignette
							geo_rafraichittimestamp();
							geo_rafraichiticone(ville);
							geo_affiche();
						}
					});
					$('stopattente3').style.backgroundImage = "url(media/img/imageaction/ok.png)";
				}
			});		
		}
	});
}

function geo_affiche(){	//demos geo affiche
	contenu='<option value="" class="texte"></option>';
	new Ajax.Request(urltask, {
		asynchronous: 'true',
		postBody: 'tache=demos/geo/autresvilles',
		onComplete: function(xhr)
		{
			villes=(xhr.responseText.substr(13));
			var tab = villes.split("_");
			for(i=1;i<(tab.length);i++){
				contenu=contenu+'<option value="'+tab[i]+'" class="texte">'+tab[i]+'</option>';
			}
			new Effect.Fade($('cache'),{
				afterFinish:function(){
					$('stopattente3').style.backgroundImage = "url(media/img/imageaction/ok.png)";
					$('autres').update(contenu);
					new Effect.Appear($('choix_ville'),{
						afterFinish:function(){
							scrollTo(0,400);
							Behaviour.apply();
						}
					});
				}
			});
		}
	});
}
function geo_rafraichiticone(ville){ //demos geo tte les 5 minutes maj iconetemps
	new Effect.Fade($('lune'));
	new Effect.Fade($('nuage'));
	new Effect.Fade($('pluie'));
	new Effect.Fade($('neige'));
	new Effect.Fade($('eclair'));
	new Effect.Fade($('soleil'));
	new Effect.Fade($('grele'),{
		afterFinish:function(){		
			new Ajax.Request(urltask, {
				asynchronous: 'true',
				postBody: 'tache=demos/geo/demos&villegeo='+ville,
				onComplete: function(xhr)
				{
					weath=xhr.responseText.substr(13);
					tabweath = weath.split("|");
					tabpartps = tabweath[1].split(",");
					for(i=0;i<tabpartps.length;i++){
						if(tabpartps[i]){
							$(tabpartps[i]).style.backgroundImage = "url(media/img/geo/temps/"+tabpartps[i]+".png)";
							new Effect.Appear($(tabpartps[i]));
						}
					} 
					nomville=ville.toUpperCase();
					$('nomville').update(nomville+" / "+tabweath[0]+"°");
					temperature=tabweath[0];
					geo_rafraichitcouleurcalq(temperature);
				}
			});
			nomicone=setTimeout(function () { geo_rafraichiticone(ville); }, 300000);
			geo_rafraichiticoneposition(tabpartps);
		}
	});	
}
function geo_rafraichitcouleurcalq(temperature){					
	new Ajax.Request(urltask, {
		asynchronous: 'true',
		postBody: 'tache=demos/geo/zonegeo&temperature='+temperature,
		onComplete: function(xhr)
		{
			couleur=xhr.responseText.substr(13);
			for(numcalqu=0;numcalqu<12;numcalqu++){
				numimagecalq=Math.floor(Math.random()*13);
				image="media/img/geo/couleurs/"+couleur+"/couleur"+numimagecalq+".png";
				calq_image = '<img src="'+image+'" alt="" />';
				$('calq'+numcalqu).update(calq_image);
			}
		}
	});
}
function geo_rafraichiticoneposition(tabpartps){//tte les 5 minutes mouvements
	if($('geotimestamp')){
		var aujourdhui=new Date();
		heure = aujourdhui.getHours();
		minutes = aujourdhui.getMinutes();
		secondes = aujourdhui.getSeconds();
		totalsecondes = heure * 3600;
		totalsecondes = totalsecondes + ( minutes * 60 );
		totalsecondes = totalsecondes + secondes
		pi=Math.PI;
		x=pi*(totalsecondes/86400);
		xpi=580/(pi/x);
		ypi=Math.sin(x);
		lefticone = xpi;
		topicone = 0-(ypi*230)+160;
		for(i=0;i<tabpartps.length;i++){
			if(tabpartps[i]){
				$(tabpartps[i]).style.left = lefticone+"px";
				$(tabpartps[i]).style.top = topicone+"px";
			}
		}
		setTimeout(function () { geo_rafraichiticoneposition(tabpartps); }, 5000);	
	}
}

function geo_rafraichittimestamp(){ //demos geo tte seconde maj timestamp
	if($("geotimestamp")){
		dat = new Date();
		$('geotimestamp').innerHTML = dat.toLocaleTimeString();
		setTimeout(function () { geo_rafraichittimestamp(); }, 1000);
	}
}

function geo_calqcouleur(couleur){ //demos geo recuperation des calques
	for(numcalq=0;numcalq<12;numcalq++){
		numimagecalq=Math.floor(Math.random()*13);
		image="media/img/geo/couleurs/"+couleur+"/couleur"+numimagecalq+".png";
		calq_image = '<img src="'+image+'" alt="" />';
		$('calq'+numcalq).update(calq_image);
	}
	geo_mvtcalq('');
}

function geo_mvtcalq(tab){//demos geo tte les secondes changement aleatoire de la place des calques 
	if($('resultat')){
		var margeleft=$('resultat').offsetLeft;
		var margetop=$('resultat').offsetTop;
		if(!tab){
			var tab = new Array();
			for(i=0;i<12;i++){ tab[i]=i; }
		}
		tab.sort(function() { return 0.5 - Math.random() });
		var j=0;
		var l=0;
		var k=0;
		for(var numcalq=0;numcalq<12;numcalq++){
			if(tab[numcalq]<4){
				imgleft=(j*240)+margeleft;
				imgtop=margetop;
				j=j+1;
			}
			if(4<=tab[numcalq] && tab[numcalq]<8){
				imgleft=(l*240)+margeleft;
				imgtop=150+margetop;
				l=l+1;
			}
			if(8<=tab[numcalq]){
				imgleft=(k*240)+margeleft;
				imgtop=300+margetop;
				k=k+1;
			}
			$('calq'+tab[numcalq]).style.left=imgleft+"px";
			$('calq'+tab[numcalq]).style.top=imgtop+"px";
		}
		setTimeout(function () { geo_mvtcalq(tab); }, 1000);
	}
}

function attentefini(){	//demos geo changement de ville apres chargement
	new Effect.Fade($('attente_horloge'));
	new Effect.Fade($('attente_msg'));
}
// Enregistrement des regles definies ci dessus dans Behaviour
Behaviour.register(myrules);