/* Initialisation de certaines variable importante */
/*urlSite="http://localhost/celibataire-avec-enfant";*/
/*urlSite="http://www.manit4c.com/demos/rencontre";*/
urlSite="http://www.celibataire.commaps.fr";

dojo.require("dijit.form.Form");
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dojox.validate.regexp");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.form.ComboBox");
dojo.require("dijit.Dialog");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.form.CheckBox");
dojo.require("dojox.validate.regexp");
dojo.require("dijit.form.NumberSpinner");
dojo.require("dijit.form.SimpleTextarea");
dojo.require("dijit.Editor");

/*
dojo.require("dijit.form.Button");

dojo.require("dijit.Editor");



dojo.require("dijit.Dialog");

dojo.require("dojox.form.CheckedMultiSelect");
dojo.require("dijit.form.DateTextBox");
dojo.require("dojox.image.Lightbox");*/


function loadVille(cpInput,idSelect,idTargetNode,savedCity,urlFile) {
	if(dijit.byId(idSelect)) dijit.byId(idSelect).destroy();
	urlFile=(!urlFile)?urlSite+"/ajax/loadville.php":urlFile;
	var cp=cpInput.attr('displayedValue');
	if(cpInput.validate() && cp!="") {
		//console.log(urlFile);
		var store = new dojo.data.ItemFileReadStore({url: urlFile+"?cp="+cp, urlPreventCache:true});
		var listeVille=new dijit.form.FilteringSelect({
			"class":"select",
			name:idSelect,
			searchAttr:"nom",
			autoComplete:"true",
			id:idSelect,
			required:"true",
			store: store
		});
		dojo.connect(listeVille,"_startSearch",function(){
			var loadingNode=dojo.create("img",{"src":"../images/ajax-loader.gif", "class":"imgLoadingVille", "id":"imgLoad_"+idSelect},dojo.byId(idTargetNode));
		});
		
		dojo.connect(listeVille,"_openResultList",function(){
			dojo._destroyElement(dojo.byId("imgLoad_"+idSelect));
			});		
		dojo.connect(listeVille,"validate",function(){
			if(listeVille.value=="") 
				listeVille._isvalid=false;
		});		
		if(savedCity) 
			listeVille.attr('value',savedCity);

		dojo.byId(idTargetNode).appendChild(listeVille.domNode);
		listeVille.startup();
	}
}

function checkThisBox(myCheckBox,valeurAVerifier) {
	if(myCheckBox.checked==true) {
		if(myCheckBox.value==valeurAVerifier) {
			dojo.query('[name^="'+myCheckBox.name+'"]').forEach(function(node) { 
				if(dijit.byNode(node.parentNode).value!=valeurAVerifier) 
					dijit.byNode(node.parentNode).attr("checked",false);
			})
		}
		else {
			dojo.query('[name^="'+myCheckBox.name+'"]').forEach(function(node) { 
				if(dijit.byNode(node.parentNode).value==valeurAVerifier) 
					dijit.byNode(node.parentNode).attr("checked",false);
			})
		}
	}
}
//verify si les au moins une box d'un nom donne est checke et valide ou pas le form donne
function someBoxIsCheck(boxName) {
	var isChecked=false;
	dojo.query('[name^="'+boxName+'"]').forEach(function(node) { 
		if (dijit.byNode(node.parentNode).checked == true) 
			isChecked = true;
		})
	return isChecked;
}

//ajoute ou supprime d'une liste 
function sendToList(idCible,typeList,add,idElementCible,myElement) {
	var xhrArgs = {
		url:urlSite+"/ajax/listes/sendtoliste.php",
		handleAs: "json",
		timeout:5000,
		content: {
			idCible:idCible,
			typeList:typeList,
			add:add
    	},
		load: function(responseObject, ioArgs) {
			var nomListe=(responseObject.typeListe==0)?"sélection":"liste noire";
			if(responseObject.result==true) {
				phrase="Ce membre a bien été ";
				phrase+=(responseObject.add=="true")?"ajouté à":"supprimé de";
				phrase+=" votre "+nomListe;
				dojo.attr(idElementCible,{
					style:{display:"inline"}
				});
				dojo.attr(myElement,{
					style:{display:"none"}
				});
			}
			else {
				if (responseObject.raisonRefus=="1") {
					phrase="Ce membre est déjà présent dans votre ";
					phrase+=nomListe;
				}
				else if (responseObject.raisonRefus=="2") {
					phrase="Vous ne pouvez pas supprimer ce membre de votre ";
					phrase+=nomListe
					phrase+=" car il n'y figure pas.";
				}
				else {
					phrase="Un problème est survenu lors de ";
					phrase+=(responseObject.add=="true")?"l'ajout":"la suppression";
					phrase+=" de ce membre dans votre ";
					phrase+=nomListe;
				}
			}
			alert(phrase);			
			return responseObject;

		},
		error: function(error){
			alert('erreur');
		}
	}
	//Call the asynchronous xhrPost
	dojo.xhrPost(xhrArgs);
}
//valide et submit un form
function launchForm(idForm) {
	myForm=dijit.byId(idForm);
	if (myForm.validate()) {
		dojo.byId(idForm).submit();
		//myForm.submit();
	}
}

//permet d'afficher un dialog on lui donne SOIT un content soit un Href
function createDialog(dlgId,dlgTitle,dlgContent,dlgHref) {
	if (dijit.byId(dlgId))
		dijit.byId(dlgId).destroyRecursive();

	var dialogInfo = new dijit.Dialog({
		title: dlgTitle,
		id: dlgId
	});

	if (dlgContent != "") 
		dialogInfo.attr('content',dlgContent);
	else 
		dialogInfo.attr('href',dlgHref);

	dialogInfo.show();
}

//remplace l'autre createDialog il faut refaire les appel de fonction
function createDialog2(params) {
	var dg=dijit.byId(params.id);
	if (dg) {
		dojo.forEach(dg.callbackHandle,dojo.disconnect);
		dg.destroyRecursive();
	}
	
	var dialogInfo = new dijit.Dialog({
		title: params.title,
		id: params.id
	});
	dialogInfo.callbackHandle=[];
	
	if (typeof params.callback != "undefined" && typeof params.callback.show!="undefined") {
		var handle = dojo.connect(dialogInfo,"show",null,params.callback.show);
		dialogInfo.callbackHandle.push(handle);
	}
	if (typeof params.callback != "undefined" && typeof params.callback.hide!="undefined") {
		var handle = dojo.connect(dialogInfo,"hide",null,params.callback.hide);
		dialogInfo.callbackHandle.push(handle);
	}
	dialogInfo.attr((params.isUrl ? "href":"content"),params.content);

	dialogInfo.show();
}


//permet d'envoyer les info d'un formulaire en ajax
function launchAjaxForm(idForm,idConteneur,loadMsg,callbackFct) {
	myForm=dijit.byId(idForm);
	if (myForm.validate()) {
		if(idConteneur!="")
			var n = dojo.create("div", {innerHTML: loadMsg}, dojo.byId(idConteneur));
		var xhrArgs = {
        	form: dojo.byId(idForm),
			handleAs: "json",
			load: function(responseObject, ioArgs) {
				callbackFct(responseObject);	
			}
		}
		//Call the asynchronous xhrPost
	var deferred = dojo.xhrPost(xhrArgs);
	}
}

//pour envoyer un message via le formulaire de contact
function envoieMsgContact() {
	loadMsg="Votre message est en cours d'envoie, veuillez patienter.";
	callback = function($retour){
		if($retour==true) 
			createDialog('dlgContactForm','contactez-nous','Votre message a bien été envoyé','');
		else
			createDialog('dlgContactForm','erreur','<span class="erreurMsg">Une erreur est survenue lors de l\'envoie de votre message. <br /> Merci de retenter ultérieurement.','');		
		};
	launchAjaxForm('formContactUs','',loadMsg,callback);
}
//modify le contenu d'un contentPane
function changeHrefContentPane(idContentPane,urlContentPane) {
	myContentPane=dijit.byId(idContentPane);
	dojo.attr(myContentPane,{href:urlContentPane});
	myContentPane.startup();
}
