/*
docs : 	http://scriptaculous.le-developpeur-web.com/
		http://particletree.com/features/quick-guide-to-prototype/
*/
//fonction d'affichage d'un message de sauvegarde

function sauvegarde(){
	var insertion = new Insertion.Top("body","<div id='sauvegarde' style='display:none; color:red; border:0 solid;color:red;position:absolute;margin:0;padding:15px 0;left:45%;top:155px;'><img style='margin:0 10px -9px 0;padding:0' src='scpt/images/loading.gif' />Sauvegarde en cours </div>");
	new Effect.Appear('sauvegarde', {
		duration:3,
		fps:25,
		from:1.0,
		to:0.0,
		afterFinish :function (){Element.remove('sauvegarde')}
	});
}
//Savegarde d'info
function saveUserInfo(e){
  evt = getObjectFromEvent(e, false);
  o_options = new Object();
  o_options = {
    method: 'post',
    parameters: 'table='+ evt.name + '&value=' + evt.value,
    onSuccess:dataInsertConf
  };
  var laRequete = new Ajax.Request("user/saveUserInfo.php",o_options);
}

function alertTest(e){
	window.open(e,'_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=1, copyhistory=0, menuBar=0, width=1024, height=768');
}


//fonction qui fait apparaitre le div de confirmation de la requete de base de donnée
function dataInsertConf(){
  new Effect.Appear('saveDiv', {duration:3, fps:25, from:1.0, to:0.0});
}

//affichage des avatars
function tada(togId){
	Element.hide("avatarOfUser");
	Element.hide("avatarDefault");

	evt = getObjectFromEvent(togId, false);
	evt = evt.id.substr(3,20);
	new Effect.Appear(evt, {duration:0.4, fps:25, from:0.0, to:1.0});
}

//ouverture de la fenetre dans un popup
function openNewWindows(e){
	Event.stop(e);
	evt = getObjectFromEvent(e, false);
	window.open(evt.href,'_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=1, copyhistory=0, menuBar=0, width=1024, height=768');
	return(false);
}
function openNewAdsPic(e){
	Event.stop(e);
	evt = getObjectFromEvent(e, false);
	window.open(evt.alt,'_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=1, copyhistory=0, menuBar=0, width=1024, height=768');
	return(false);
}
//fonction de tri de liste
function sortList(list,action){
	Sortable.create(list,{
		onUpdate: function(){
			new Ajax.Request("sortable.php?action=" + action,{
				method: "post",
				parameters: { data:Sortable.serialize(list) }
			});
		}
	});
}

//Teste si les champs de acf sont remplis
function acfTest(e){
	if($("acfEuro").value == "" ){
		Event.stop(e);
		alert('Vous devez entrer un montant');
	}
	if($("acfEmail").value == "" ){
		Event.stop(e);
		alert('Vous devez entrer un email');
	}
}

function displayVideo(e){
	evt = getObjectFromEvent(e, true);
	o_options = new Object();
	o_options = {
		method: 'get',
		parameters: 'videoId=' + evt.id
	};
	var laRequete = new Ajax.Updater("videoPlayer","video/videoPlayerJs.php",o_options);
}
/************************ Style de la page ******************************/
document.observe("dom:loaded", function() {
	$("style1").observe('click', function(){
		new Effect.Appear('banniere', {from:1.0, to:0.0,afterFinish:banniere1});
		new Ajax.Request("index.php",{method: "get", parameters:{banniere:"banniereStyle1"}});

	});
	$("style2").observe('click', function(){
		new Effect.Appear('banniere', {from:1.0, to:0.0,afterFinish:banniere2});
		new Ajax.Request("index.php",{method: "get", parameters:{banniere:"banniereStyle2"}});
	});
	$("style3").observe('click', function(){
		new Effect.Appear('banniere', {from:1.0, to:0.0,afterFinish:banniere3});
		new Ajax.Request("index.php",{method: "get", parameters:{banniere:"banniereStyle3"}});
	});

})

function banniere1(){
	$('banniere').removeClassName('banniereStyle1');
	$('banniere').removeClassName('banniereStyle2');
	$('banniere').removeClassName('banniereStyle3');
	$('banniere').addClassName('banniereStyle1');
	Effect.Fade('banniere',{
		from:0,to:1
	});
}
function banniere2(){
	$('banniere').removeClassName('banniereStyle1');
	$('banniere').removeClassName('banniereStyle2');
	$('banniere').removeClassName('banniereStyle3');
	$('banniere').addClassName('banniereStyle2');
	Effect.Fade('banniere',{
		from:0,to:1
	});
}
function banniere3(){
	$('banniere').removeClassName('banniereStyle1');
	$('banniere').removeClassName('banniereStyle2');
	$('banniere').removeClassName('banniereStyle3');
	$('banniere').addClassName('banniereStyle3');
	Effect.Fade('banniere',{
		from:0,to:1
	});
}

/************************************************************************/
document.observe("dom:loaded", function() {

	if($("logoutLink")){
    $("logoutLink").observe("click", function() {
      new Ajax.Request("mails/?_task=logout")
      alert("Déconnexion réussi");
    })
	}

	if($("videoDisplayList")){
		var div = $("videoDisplayList").getElementsByClassName('videoPlayList');
		for(var i=0; i < div.length ; ++i){
			Event.observe(div[i], 'click', displayVideo );
		}
	}

 	if($("displayBills")){
		var div = $("displayBills").getElementsByClassName('BudgetApresAchat');
		for(var i=0; i < div.length ; ++i){
			if(div[i].id < 0) alert("budget inférieur à zéro");
		}
	}

	if($("linkImg")){
		Effect.toggle("linkImg",'appear',{
			duration:1,
			transition: Effect.Transitions.sinoidal,
			from:0,
			to:1
		});
	}

	//sauvegarde des info persos
	if($("infoUser")){
		var div = $("infoUser").getElementsByTagName('input');
		for(var i=0; i < div.length ; ++i){
			div[i].onchange = saveUserInfo;
		}
	}

	//Affichage des avatars
	if($("avatarOfUser")){
		//$("SpaavatarOfUser").onclick = tada;
		//$("SpaavatarDefault").onclick = tada;
	}

	//En place editeur
	if($("tableUserList")){
		var div = $("tableUserList").getElementsByTagName('div');
		for(var i=0; i < div.length ; ++i){
			div[i].onclick = function() {
				new Ajax.InPlaceEditor(this.id, "query.php?idUser=" + this.id,
					{ okButton : false , cancelLink : false , submitOnBlur : true }
				);
			}
		}
	}

	//Drag and Drop Action contre la faim
	if($("acf")){
		new Draggable('acf',{
			handle: $('acf').down('h1'),
			endeffect: function(){
				new Ajax.Request( 'admin/sortable.php' , {
					parameters: 'action=dnd&position=' + $("acf").style.position + '&left=' + $("acf").style.left + '&top=' + $("acf").style.top + '&dom_id=' + $("acf").id
				} );
			}
		});
	}
	//V�rification des champs Action contre la faim
	if($("acfSubmitButton")){
		$("acfSubmitButton").observe('click', acfTest);
	}

	//tri de la liste de lien et de news
	if($('newsOrder')){
		var liste = $("newsOrder").getElementsByTagName('ul');
		for(var i=0; i < liste.length ; ++i){
			test = $(liste[i].id);
			sortList(test,"sortNews");
		};
	}

	if($("linkOrder")){
		sortList('linkOrder',"sortLink");
	}

	//retractation du menu d'upload dans l'administration des utilisateurs
	if($('adminUserAddFileH2')) $('adminUserAddFileH2').observe('click', function(){
			Effect.toggle('adminUserAddFile','slide');
	});

	//Generation des mot de passe email
	if($('newName')) $("newName").observe('change', Operation);
	if($('newLastname')) $("newLastname").observe('change', Operation);

	var allNodes = document.getElementsByClassName("dl");
	for(i = 0; i < allNodes.length; i++) {
		var link = allNodes[i];
		link.observe('click', openNewWindows);
	}

	var allNodes = document.getElementsByClassName("dlAdsPic");
	for(i = 0; i < allNodes.length; i++) {
		var link = allNodes[i];
		link.observe('click', openNewAdsPic);
	}

	//Confirmation des suppressions
	var allNodes = document.getElementsByClassName("delete");
	for(i = 0; i < allNodes.length; i++) {
		var link = allNodes[i];
		link.observe('click', confirmation);
	}

	var allNodes = document.getElementsByClassName("forumDelete");
	for(i = 0; i < allNodes.length; i++) {
		var link = allNodes[i];
		link.observe('click', confirmation);
	}

	if($('loginUl')) $('loginUl').down('input').focus()

})

//------------------------------------------------//
//---        Fonctions de confirmation        ----//
//------------------------------------------------//

function confirmation(evt){
	e = getObjectFromEvent(evt, false);
	evt = !evt.target ? evt.Src : evt;
	if(!confirm("Voulez vous vraiment supprimer " + e.title +" ?" )){
		getObjectFromEvent(evt, true)
	}
	else getObjectFromEvent(evt, false)
}
//Get the object affected by an event, and call preventDefault() on the event if needed
function getObjectFromEvent(e, doPreventDefault) {
	var evTarget
	if (!e)	// IE
		e = window.event
	if (doPreventDefault) {
		if (e.preventDefault)
			e.preventDefault()
		else // IE
			e.returnValue = false 	// will do the e.preventDefault() for IE.
	}
	// IE hack again : e.target does not exist, use e.srcElement instead.
	evTarget = e.target ? e.target : e.srcElement
	return evTarget
}

//------------------------------------------------//
//---------Generer un mot de passe----------------//
//------------------------------------------------//
newNamemercial = "";
newLastnamemercial = "";


function Operation() {

	newNamemercial = $("newName").value;
	newLastnamemercial = $("newLastname").value;

	// Récupération des valeurs entrées dans le formulaire.
	var newName = $("newName").value;
	var newLastname = $("newLastname").value;

	if (newNamemercial != "" && newLastnamemercial != "") {
		var newLogin = newLastname.substr(0,1) + newName;
		$("newMail").value = newLastname  + "." + newName + "@transdev.eu";
		$("newLogin").value = newLogin.gsub('-', '');
		$("newPassword").value = ComposerMotPasse(8,"MinusculeEnPremier");
	}
}

function DonneNombreHasard(Minimum, Maximum)
{
	return (Math.floor(Math.random() * (Maximum - Minimum)) + Minimum);
}

function DonneCaractereHasard(Nombres, Minuscules, Autres)
{
	var LesChiffres 			= "0123456789";
	var LesMinuscules 		= "abcdefghijklmnopqrstuvwxyz";
	var LesAutres 			= "~@#$%?;!^&*()-_=+[{]}|;:,<.>/"

	var ChaineCaracteres = "";
	if (Nombres == true)	  	ChaineCaracteres += LesChiffres;
	if (Minuscules == true) 	ChaineCaracteres += LesMinuscules;
	if (Autres == true)     	ChaineCaracteres += LesAutres;

	return ChaineCaracteres.charAt(DonneNombreHasard(0, ChaineCaracteres.length));
}
function ComposerMotPasse(Longueur,NombreEnPremier,MinusculeEnPremier,AutreEnPremier,NombreEnsuite,MinusculeEnsuite,AutreEnsuite)
{
	var Resultat = "";
	if (Longueur > 0) Resultat = DonneCaractereHasard(true,true,false);
	for (var i = 1; i < Longueur; ++i) {
		if(i >= 2 && i <= 3)Resultat = Resultat + DonneCaractereHasard(true,false,true);
		else Resultat = Resultat + DonneCaractereHasard(true,true,false);
	}
	return Resultat;
}