// *****************************************
// Change image de fonds
// *****************************************
var nbImageTriangle =0 ;
var nbImageTotal =0 ;
var intervalEnCours=false;
var intervalImage1 = "";
var intervalImage2 = "";
var intervalImage3 = "";
var intervalImage4 = "";
var intervalImage5 = "";
var tabzone = new Array();
var currentSousCat = "";
var beforezoom = 9;
function trim(myString)
{
	return myString.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

function changePicture()
{
	//Récupère la zone à changer
	var output = new Array();
	var nb = Math.floor(Math.random() * tabzone.length);
	var img = tabzone[nb];
	for(var i=0;i<tabzone.length;i++){
	if(i!=nb)
			output.push(tabzone[i]);
	}
	tabzone = output;
	//Choisis une image
	var nbimage = Math.floor(Math.random() * nbImageTotal);
	var newImage = $('file_' + nbimage).value+"";
	while(img.style.backgroundImage.indexOf(trim(newImage))!=-1)
	{
		nbimage = Math.floor(Math.random() * nbImageTotal);
		newImage = $('file_' + nbimage).value;
	}

	new Effect.Fade(img, {duration: 1.5, afterFinish: function()
	{
		img.style.backgroundImage = "url(" + $('galerie_rep').value + trim(newImage) + ")";
		new Effect.Appear(img, {duration: 1, afterFinish: function() {
			tabzone.push(img);
		}}
		);
	}});
}

// *****************************************
// Enregistrement Abonnement
// *****************************************
function recordAbonnement(idbtn)
{
	var dispmsg = $('msg');
	//Affichage du message d'attente
	var attente = 'attenterecord:abonnement';
	new Effect.Appear($(attente), {queue:'front'});
	
	//Construction de la chaine des posts
	var chPost = FORM_buildpoststring($('conteneur'),"","");
	new Ajax.Request(urltask, {
		asynchronous: 'true',
		postBody: 'tache=admin/enregistre/abonnement_enreg&idelement='+chPost,
		onSuccess: function(xhr)
		{
			//Traitement des messages d'erreurs checking rules
			var index_erreur = xhr.responseText.indexOf("ECHEC:");
			if(index_erreur>-1)
			{
				var msg_erreur = xhr.responseText.substring(xhr.responseText.indexOf(":",(index_erreur+7))+1,xhr.responseText.indexOf("|",(index_erreur+7)));
				dispmsg.innerHTML = '<span class="msg_ko">'+msg_erreur+'</span>';
				myEffect_FlashInfo(dispmsg,2);
			}
			else if(xhr.responseText.indexOf("{EXE_FAIL}")>-1)
			{
				//Affichage du message d'erreur
				dispmsg.innerHTML = xhr.responseText.substr(11);
				myEffect_FlashInfo(dispmsg,2);
			}
			else
			{
				//Affichage du message de reussite
				new Effect.Fade($("zone_abonnement_form"), {queue:'end', afterFinish: function()
				{
					new Effect.Appear($("zone_abonnement_message"), {duration: 0.5,queue:'end'});
				}});
			}
			new Effect.Fade($(attente), {duration: 0.5,queue:'end', afterFinish: function(){Behaviour.apply();}});
		}
	});
}

// *****************************************
// Gestion de la google map
// *****************************************

function zoomVille(coord)
{
	var zoom = 11;
	map_carte_kiblind.setCenter(coord);
	map_carte_kiblind.setZoom(zoom);
	getMarker();
	showMarkerDepot();
}

function getMarker()
{
	var bounds = map_carte_kiblind.getBounds();
	var pntSW = bounds.getSouthWest();
	var pntNE = bounds.getNorthEast();
	var latSW = pntSW.lat(); 
	var lngSW = pntSW.lng(); 
	var latNE = pntNE.lat(); 
	var lngNE = pntNE.lng(); 

	var tpl = "marker_depot";
	var conteneur = $("conteneur_map");
	var url = '&latSW='+latSW+'&lngSW='+lngSW+'&latNE='+latNE+'&lngNE='+lngNE;
	new Ajax.Request(urltask, {
		asynchronous: 'true',
		postBody: 'tache=site/get_marker'+url,
		onSuccess: function(xhr)
		{
			var response = xhr.responseText.substr(13);
			var lignes = response.split('|');
			for(var i=0; i<lignes.length-1 ; i++)
			{
				var champs = lignes[i].split('#');
				var sscatid = champs[0].split("_");
				var check = $("sscat:"+sscatid[0]);
				if(check && !check.checked)
					putmarker(champs[1], champs[2], champs[3], mon_icone,champs[0] ,map_carte_kiblind, gmarkers_carte_kiblind, marker_order_carte_kiblind,"",true);
				else
					putmarker(champs[1], champs[2], champs[3], mon_icone,champs[0] ,map_carte_kiblind, gmarkers_carte_kiblind, marker_order_carte_kiblind,"",false);
			}
		}
	});
}

function getLatitude(btnid)
{
	var tabid = btnid.split(":");
	return tabid[2];
}

function getLongitude(btnid)
{
	var tabid = btnid.split(":");
	return tabid[3];
}

function hidesallMarkeur()
{
	for(var i =0; i<marker_order_carte_kiblind.length;i++)
	{
		gmarkers_carte_kiblind[i].hide();
	}	
}

function hideshowMarkeur(idcat,checked)
{
	for(var i =0; i<marker_order_carte_kiblind.length;i++)
	{
		var idmarker = marker_order_carte_kiblind[i]+"";
		
		if(idmarker.indexOf("_")>-1)
		{
			var test = idmarker.split("_");
			if(test[0]==idcat)
			{
				if(checked==0)
				{
					gmarkers_carte_kiblind[i].hide();
				}
				else
				{
					gmarkers_carte_kiblind[i].show();
				}
			}
		}
	}
}

function showMarkerVille()
{
	for(var i =0; i<marker_order_carte_kiblind.length;i++)
	{
		var idmarker = marker_order_carte_kiblind[i]+"";
		
		if(idmarker.indexOf("_")>-1)
		{
			var test = idmarker.split("_");
			if(test[0]==0)
			{
				gmarkers_carte_kiblind[i].show();
			}
			else
			{
				gmarkers_carte_kiblind[i].hide();
			}
		}
	}
	//Hide the filter button
	new Effect.Fade($("conteneur_categorie"), {duration: 0.5,queue:'end'});
	
}

function showMarkerDepot()
{
	for(var i =0; i<marker_order_carte_kiblind.length;i++)
	{
		var idmarker = marker_order_carte_kiblind[i]+"";
		
		if(idmarker.indexOf("_")>-1)
		{
			var test = idmarker.split("_");
			if(test[0]!=0)
			{
				var check = $("sscat:"+test[0]);
				if(check && check.checked)
				{				
					gmarkers_carte_kiblind[i].show();
				}
			}
			else
			{
				gmarkers_carte_kiblind[i].hide();
			}
		}
	}
	
	//Show the filter button
	new Effect.Appear($("conteneur_categorie"), {duration: 0.5,queue:'end'});
}

// *****************************************
// Gestion du reader ISSUU (pdf)
// *****************************************
function changeReader(btnid)
{
	var idmagazine = btnid.split(":")[1];
	var tpl = "issuu";
	var conteneur = $("zone_pdf_viewer");
	var url = 'site/issuu/'+tpl+'&idmagazine='+idmagazine;

	new Ajax.Updater(conteneur, urlaff, {
		asynchronous: 'true',
		parameters: 'tpl='+url,
		evalScripts : true,
		onSuccess: function(){
			Behaviour.apply();
		}
	});
}


var myrules = {
		//Enregistre la demande d'abonnement
		'.btnminirecord' : function(br)
		{
			br.onclick=function()
			{
				recordAbonnement(br.id);
			}
		},
		
		//Image de fonds dynamique
		'.galeriedyn' : function()
		{
			//Lancement de la fonction
			if(!intervalEnCours)
			{
				divs = $$('div.img_triangle');
				tabzone = divs;
				nbImageTriangle = divs.length;
				inputs = $$('input.fichier_image');
				nbImageTotal = inputs.length;
				intervalEnCours=true;
				if(nbImageTotal>1)
				{
					intervalImage1 = setInterval("changePicture()",(7500/nbImageTriangle));
				}
			}
		},
		
		//GMAP : Affiche sous categorie
		'.btnfiltre' : function(btn)
		{
			btn.onclick=function()
			{
				var tabid = btn.id.split("_");
				var idcat = tabid[1];
				var divsscat = "souscat_"+idcat;
				if($(divsscat) && divsscat!=currentSousCat)
				{
					//On cache les autres menus
					if(currentSousCat!="")
					{
						new Effect.Fade($(currentSousCat), {duration: 0.2,queue:'end', afterFinish: function(){new Effect.Appear($(divsscat), {duration: 0.5,queue:'end', afterFinish: function(){currentSousCat = "souscat_"+idcat;Behaviour.apply();}});}});
					}
					else
					{
						new Effect.Appear($(divsscat), {duration: 0.2,queue:'end', afterFinish: function(){currentSousCat = "souscat_"+idcat;Behaviour.apply();}});
					}
				}
			}
		},

		//GMAP : Zoom sur une ville
		'.btnAfficheVille' : function(btn)
		{
			btn.onclick=function()
			{
				var latitude = getLatitude(btn.id);
				var longitude = getLongitude(btn.id);
				var coord = new GLatLng(latitude,longitude);
				zoomVille(coord);
			}
		},

		//GMAP event sur zoom
		'#carte_kiblind' : function(btn)
		{
			GEvent.addListener(map_carte_kiblind, "zoomend", function(oldZoom,newZoom) {
			if(newZoom>beforezoom)
			{
				getMarker();
				if($("conteneur_categorie").style.display=='none')
				{
					showMarkerDepot();
					map_carte_kiblind.enableInfoWindow();
				}
			}
			else
			{
				showMarkerVille();
			}
    		});
    		
    		GEvent.addListener(map_carte_kiblind, "dragend", function() {
    		var zoom =	map_carte_kiblind.getZoom();
			if(zoom>beforezoom)
			{
				getMarker();
			}
    		});

    		GEvent.addListener(map_carte_kiblind, "click", function(latlong) {
    		});
		},
		
		//GMAP : Filtre par sous categorie
		'.chksscat' : function(btn)
		{
			btn.onclick=function()
			{
				var tabid = btn.id.split("_");
				if($("sscat:"+tabid[1]).checked==1)
				{
					hideshowMarkeur(tabid[1],0);
				}
				else
				{
					hideshowMarkeur(tabid[1],1);
				}
			}
		},
		
		//GMAP : Filtre par categorie
		'.chkcat' : function(btn)
		{
			btn.onclick=function()
			{
				var tab = btn.id.split("_");
				var conteneur = $("souscat_"+tab[1]);
				labels = conteneur.getElementsByTagName("label");
				for(var i=0; i<labels.length;i++)
				{
					var tabid = labels[i].id.split("_");
					if($("cat:"+tab[1]).checked==1)
					{
						hideshowMarkeur(tabid[1],0);
						$("sscat:"+tabid[1]).checked=false;
						$("sslbl_"+tabid[1]).className = "checkbox_unchecked";
					}
					else
					{
						hideshowMarkeur(tabid[1],1);
						$("sscat:"+tabid[1]).checked=true;
						$("sslbl_"+tabid[1]).className = "checkbox_checked";
					}
				}
			}
		},
		 
		//ISSUU : Change MAP
		'.choixmagazine' : function(btn)
		{
			btn.onclick=function()
			{
				//Changement de la class current
				liSelected = $$('ul.zone_magazine_choix li.current');
				liSelected[0].className = "";
				btn.parentNode.className = "current";
				//Changement du lien de telechargement
				var url = $('download_magazine').href;
				url = url.substring(0,(url.lastIndexOf("/")+1));
				url += btn.id.split(":")[2];
				$('download_magazine').href = url;
				//Change issu
				changeReader(btn.id);
			}
		},
		
		'.close_filter' : function(btn)
		{
			btn.onclick=function()
			{
				//Changement de la class current
				divs = $$('div.souscat');
				for(var i = 0  ; i <divs.length;i++)
				{
					divs[i].style.display ="none";
				}
			}
		},
		
		'.btn_test': function(btn)
		{
			btn.onclick=function()
			{
				hidesallMarkeur();
			}
		}
};

// Enregistrement des regles definies ci dessus dans Behaviour
Behaviour.register(myrules);
