dojo.require("dijit.form.ValidationTextBox");
dojo.require("dojox.validate.regexp");
dojo.require("dijit.form.Form");
dojo.require("dijit.form.Button");
dojo.require("dijit.Editor");
dojo.require("dijit.form.ComboBox");
dojo.require("dijit.form.CheckBox");
dojo.require("dijit.form.FilteringSelect"); 
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.Dialog");
dojo.require("dijit.layout.ContentPane");
dojo.require("dojox.form.CheckedMultiSelect");
dojo.require("dijit.form.DateTextBox");
dojo.require("dojox.image.Lightbox");


//permet de charger la liste des villes selon le cp
/*
 * cp: le code postal envoyer au fichier php pour trouver les villes
 * idSelect: l'id du select qui va être créé
 * idTargetNode: l'id où le select va être inséré
 * savedCity: le nom de la ville déjà enregistrée dans la bdd (permet l'affichage de la ville au depart)
 * dojo.require("dijit.form.FilteringSelect"); 
   dojo.require("dojo.data.ItemFileReadStore");
 */
function loadVille(cpInput,idSelect,idTargetNode,savedCity,urlFile) {
	if(dijit.byId(idSelect)) dijit.byId(idSelect).destroy();
	var cp=cpInput.attr('displayedValue');
	if(cpInput.validate() && cp!="") {
		//console.log(urlFile);
		var urlLoadVille=(!urlFile)?"loadville.php":urlFile;
		var store = new dojo.data.ItemFileReadStore({url: urlLoadVille+"?cp="+cp, urlPreventCache:true});
		var listeVille=new dijit.form.FilteringSelect({
			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 signalMissingCity(root) {
	if (!dijit.byId('missingCityDialog')) {
		var foo = new dijit.Dialog({
			title: "Signalez une ville manquante",
			href: root + "signalmissingcity.php",
			id: "missingCityDialog",
			style: "width:540px;"
		});
		dojo.body().appendChild(foo.domNode);
		foo.startup();
	}
	dijit.byId('missingCityDialog').show();
}

function sendMissingCity(root){
	if (dijit.byId('missingCityForm').validate()) {
		dojo.xhrPost({
			// The page that parses the POST request
			url: root+'signalmissingcity.php',
			
			// Name of the Form we want to submit
			form: 'missingCityForm',
			
			// Loads this function if everything went ok
			load: function(data){
				// Put the data into the appropriate <div>
				dojo.byId('missingCityResponse').innerHTML = data;
			},
			// Call this function if an error happened
			error: function(error){
				console.error('Error: ', error);
			}
		});
	}
}

//permet de checker plusieurs checkbox identique
function checkMultipleBox(myCheckBox) {
		dojo.query('[value="'+myCheckBox.value+'"]').forEach(function(node) { 
			dijit.byNode(node.parentNode).attr("checked",myCheckBox.checked);
		})
	}
	
//permet d'afficher un dialog
function showDialogInfo(dlgTitle,dlgContent) {	
	if (dijit.byId('dialogInfo'))
		dijit.byId('dialogInfo').destroyRecursive();

	var dialogInfo = new dijit.Dialog({
		title:dlgTitle,
		content:dlgContent,
		id:"dialogInfo"	});
	
	dialogInfo.show()
}
//trim en javascript
var regExpBeginning = /^\s+/;
var regExpEnd = /\s+$/; 
// Supprime les espaces inutiles en début et fin de la chaîne passée en paramètre.
function trim(aString) {
    return aString.replace(regExpBeginning, "").replace(regExpEnd, "");
}

 // Supprime les espaces inutiles en début de la chaîne passée en paramètre.
function ltrim(aString) {
    return aString.replace(regExpBeginning, "");
}

// Supprime les espaces inutiles en fin de la chaîne passée en paramètre.
function rtrim(aString) {
    return aString.replace(regExpEnd, "");
}

function showFormContact(theUrl,idDlg,theTitle) {
	if (dijit.byId(idDlg))
		dijit.byId(idDlg).destroyRecursive();
	
	var myDlg;
	myDlg = new dijit.Dialog({
		title: theTitle,
		href:theUrl,
		id:idDlg
	})
	dojo.connect(myDlg, "onLoad", function(){
		dojo.create("div",{"id":"response"+idDlg, "class":"response"},dojo.byId(idDlg));
	});
	dojo.connect(myDlg, "onClose", function(){
		dijit.byId(idDlg).destroyRecursive();
		dijit.byId('formContactPresta').destroyRecursive();
	});
	
	myDlg.show();
	
	if (dijit.byId('formContactPresta'))
		dijit.byId('formContactPresta').destroyRecursive();

	return false;
}
//pour envoyer les message au pro
function validEnvoiMessage(idDlg) {
	var msg=trim(dojo.byId('msg').value);
	if(msg=="")
		showDialogInfo('Erreur','Vous n\'avez pas indiquer de message');
	else {
		if (dijit.byId('formContactPresta').validate()) {
			var xhrArgs = {
        		form: dojo.byId("formContactPresta"),
        		handleAs: "text",
				load: function(data){					
					if (dijit.byId('formContactPresta'))
						dijit.byId('formContactPresta').destroyRecursive();
					dojo.byId("response"+idDlg).innerHTML = data;
        		},
        		error: function(error){
          			dojo.byId("response"+idDlg).innerHTML = "Un erreur est survenue lors de l'envoie.";
        		}
			}
			//Call the asynchronous xhrPost
			dojo.byId('response'+idDlg).innerHTML = "Votre email est en cours d'envoie";
			var deferred = dojo.xhrPost(xhrArgs);
		}
	}
}
/*
//affiche le formulaire de contact
function contactPresta(idFiche,urlSite) {
	if (dijit.byId('emailDlg'))
		dijit.byId('emailDlg').destroyRecursive();
		
	var emailDlg;
	emailDlg = new dijit.Dialog({
		title: "Contacter par email",
		href:urlSite+"contactpresta.php?idFiche="+idFiche,
		id:"emailDlg"
	})
	dojo.connect(emailDlg, "onLoad", function(){
		var n= dojo.create("div",{"id":"response"},dojo.byId('theForm'));
	});
	dojo.connect(emailDlg, "onClose", function(){
		dijit.byId('emailDlg').destroyRecursive();
	});
	
	
	emailDlg.show();
	
	if (dijit.byId('formContactPresta'))
		dijit.byId('formContactPresta').destroyRecursive();
	return false;
}
//affiche le formulaire de contact
function signalAbus(idFiche,urlSite) {
	if (dijit.byId('signalAbusDlg'))
		dijit.byId('signalAbusDlg').destroyRecursive();
		
	var emailDlg;
	emailDlg = new dijit.Dialog({
		title: "Signaler un abus",
		href:urlSite+"signalabus.php?idFiche="+idFiche,
		id:"signalAbusDlg"
	})
	dojo.connect(emailDlg, "onLoad", function(){
		var n= dojo.create("div",{"id":"response"},dojo.byId('theForm'));
	});
	emailDlg.show();
	if (dijit.byId('formContactPresta'))
		dijit.byId('formContactPresta').destroyRecursive();
	return false;
}
*/
//permet de vérifier si au moin une checkbox d'un formulaire est cochée
function verifCheckBox(myFormId,myErreurMsg) {
	var i = 0;
	dojo.query('[class="dijitReset dijitCheckBoxInput"]').forEach(function(node){
		if (dijit.byNode(node.parentNode).checked == true) {
			dijit.byId(myFormId).submit();
			i++;
		}
	})
	if (i == 0) 
		showDialogInfo('erreur', myErreurMsg);
}
/*** png ***/
function IE_CorrectAlpha_PNG(){
	for(i=0; i<document.images.length; i++){
		img    = document.images[i];
		imgExt  = img.src.substring(img.src.length-3, img.src.length);
		imgExt  = imgExt.toUpperCase();
		if (imgExt == "PNG"){
			imgID    = (img.id) ? "id='" + img.id + "' " : "";
			imgClass= (img.className) ? "class='" + img.className + "' " : "";
			imgTitle= (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
			imgStyle= "display:inline-block;" + img.style.cssText;
			if (img.align == "left") { imgStyle = "float:left;"  + imgStyle; } else if (img.align == "right"){ imgStyle = "float:right;" + imgStyle; }
			if (img.parentElement.href)   { imgStyle = "cursor:hand;" + imgStyle; }       
			strNewHTML    = '<span '+imgID+imgClass+imgTitle+' style="width:'+img.width+'px; height:'+img.height+'px;'+imgStyle+';'+'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+img.src+'\', sizingMethod=\'scale\');"></span>';
			img.outerHTML = strNewHTML;
			i = i-1;
		}
	}
}
function siteFerme() {
	showDialogInfo('Ouverture du site','OUVERTURE DU SITE AU GRAND PUBLIC LE MERCREDI 15 JUILLET<br /> SI VOUS ETES UN PROFESSIONNEL <a href="acces_pro.php">RENDEZ-VOUS DANS L\'ESPACE PRO</a>.');
}

