
/////////////////////////////////////////////////////////
//////////TOOLTIP SUGGESTIONS DE PERSONNES///////////////
/////////////////////////////////////////////////////////

	function tooltipBody(){
		$('.tooltipBody').tooltip({ 
			track: true, 
			delay: 0, 
			showURL: false, 
			fade: 250, 
			bodyHandler: function() { 
				return $(this).next('.linkFicheTooltip').html(); 
			} 
		});	
	}
	function tooltip(elm){
		$(elm).tooltip({ 
			track: true, 
			delay: 0, 
			showURL: false, 
			fade: 250 
		});	
	}
	
	
/////////////////////////////////////////////////////////////////////////
//////CONTROLE DES CHAMPS MARQUER COMME OBLIGATOIRE DANS LES MODALS//////
/////////////////////////////////////////////////////////////////////////

	function require(form){
		var pass=true;
		passOne = $(form).find('input#requireInput').attr('value');
		$(form).find('input,textarea,select').each(function(i,elm){
								//dans le cas d'un changement d'adresse le remplissage de certain champ est requis (title = requireNext) on v�rifie ces champs
			//REQUIRE NEXT
			if($.trim($(elm).attr('value'))=='' && $(elm).attr('title')=='requireNext' && $.trim($(elm).next('input').attr('value'))!=''){
				pass=false;
				errorForm($(elm));
				errorForm($(elm).next('input'));
			}else if($.trim($(elm).attr('value'))!='' && $(elm).attr('title')=='requireNext' && $.trim($(elm).next('input').attr('value'))==''){
				pass=false;
				errorForm($(elm));
				errorForm($(elm).next('input'));
			}
			//REQUIRE PREV
			if($.trim($(elm).attr('value'))!='' && $(elm).attr('title')=='requirePrev' && $.trim($(elm).prev('input').attr('value'))==''){
				pass=false;
				errorForm($(elm));
			}
			//REQUIRE EMAIL
			if($(elm).attr('title')=='requireVerifEmail'){
				if(!verifEmail($(elm).attr('value'))){
					pass=false;
					errorForm($(elm));
				}			
				if($.trim($(elm).attr('value'))==''){
					pass=false;
					errorForm($(elm));
				}
			}
			//REQUIRE URL
			if($(elm).attr('title')=='requireLink'){
				if($(elm).attr('value').substr(0,7)=='http://'){
					$(elm).attr('value', $(elm).attr('value').substr(7));
				}
			}
			if($(elm).attr('title')=='requireLinkAdmin'){
				if($(elm).attr('value').indexOf("http://")!=-1){
					$(elm).attr('value', $(elm).attr('value').substr($(elm).attr('value').indexOf("http://")+7));
				}
				if($.trim($(elm).attr('value'))==''){
					pass=false;
					errorForm($(elm));
				}
			}
			//REQUIRE VALUE
			if($(elm).attr('title')=='requireText'){
				
				if($.trim($(elm).attr('value'))==''){
					pass=false;
					errorForm($(elm));
				}
			}
			//REQUIRE CHECK
			if($(elm).attr('title')=='requireCheck'){
				if(!$(elm).is(':checked')){
					pass=false;
					$(elm).next().addClass('editError');
				}
			}
			//REQUIRE SELECT
			if($(elm).attr('title')=='requireSelect'){
				log($(elm));
				if($(elm).find('option:selected').attr('value')==""){
					pass=false;
					errorForm($(elm));
				}
			}
			//REQUIRE NEW PASSWORD
			if($(elm).attr('title')=='requireNewPassNext'){
				if($(elm).attr('value').length<4 || $(elm).parent().next().children('#re-password').attr('value')!=$(elm).attr('value')){
					pass=false;
					errorForm($(elm).parent().next().children('#re-password'));
					errorForm($(elm));
				}
			}
			//REQUIRE CURRENT PASSWORD
			
			if($.trim($(elm).attr('value'))==''){
				passOne--;
				//$(elm).addClass('editError');
			}	
		});
		
		if(($('#delElm').length>0 && $('#delElm').is(':checked')) || ($('#nc').length>0 && $('#nc').is(':checked')))pass=true;
		if(passOne<1 && !$(form).find('#delElm').is(':checked')){
			pass=false;
			$(form).find('input,textarea').each(function(){errorForm($(this))});
		}
		if(pass){
			$(form).find('input,textarea').each(function(){
				$(this).attr('value', htmlentities($(this).attr('value')));
			});
		}
		return pass;
	}
	
////////////////////////////////////////////////
///////////////GOOGLE MAPS//////////////////////
////////////////////////////////////////////////

	function placeMarkers(){
		$('#myGMap').html('');
		var G_map2 = null;
		var G_geocoder2 = null;
		var G_marker2 = null;
		var G_address2 = null;
		if (GBrowserIsCompatible()) {
			G_map2 = new GMap2(document.getElementById("myGMap"));
			var center = new GLatLng(50.54,  4.32);
			G_map2.setCenter(center, 50);
			G_map2.setUIToDefault();
		}
		//aucune coordonn�es 
		if($.trim($('#myGMap').attr('title'))==''){
			var geocoder = new GClientGeocoder();
			geocoder.getLatLng(
				$('#myGMap').attr('rel'),
				function(point) {
					if (!point) {
						//alert("- "+address+" n'existe pas");
					}else {
						var lati =  point.lat();
						var longi =  point.lng();
						var ad = $('#myGMap').attr('rel').split(',');
						var street = ad[0];
						var city = ad[1];
						
						var info = '<h2>'+$('#titleFiche').html()+'</h2><p>'+street+'<br />'+city+'</p>';
		
						var point = new GLatLng(lati,longi);
						var center = new GLatLng(lati, longi);
						G_map2.setCenter(center, 12);
		
						var marker2 = new GMarker(point);
						// marker2.click(marker2.openInfoWindowHtml($(this).html()));
						GEvent.addListener(marker2, "click", function() {
							marker2.openInfoWindowHtml(info);
						});
						G_map2.addOverlay( marker2);
					}
					
				}
			);
		//coordonn�es renseign�s
		}else{
			var latLong=$('#myGMap').attr('title').split(',');
			var lati = latLong[0];
			var longi = latLong[1];
			var ad = $('#myGMap').attr('rel').split(',');
			var street = ad[0];
			var city = ad[1];
			
			var info = '<h2>'+$('#titleFiche').html()+'</h2><p>'+street+'<br />'+city+'</p>';
		
			var point = new GLatLng(lati,longi);
			var center = new GLatLng(lati, longi);
			G_map2.setCenter(center, 12);
		
			var marker2 = new GMarker(point);
			// marker2.click(marker2.openInfoWindowHtml($(this).html()));
			GEvent.addListener(marker2, "click", function() {
				marker2.openInfoWindowHtml(info);
			});
			G_map2.addOverlay( marker2);
		}
	}

/////////////////////////////////////////////
/////////// PASSER EN MODE CLIENT////////////
/////////////////////////////////////////////

// => SET
	function takeControl(){
		$.ajax({
			type: "POST",
			url: domain+"/do/other/gdm_take_control.php",
			data: 'client=true',
			success: function(bk){
				fadeBody();
			}
		});
	}

///////////////////////////////////////////////
///////////////FONCTION zzzEdit.js/////////////
///////////////////////////////////////////////

// => ACTUALISATION PAGE COURANTE FADE OUT
	function fadeBodyGet(){
		$('body').fadeOut('slow', function(){
			var chaine = window.location.toString();
			if(chaine.lastIndexOf('#')==-1){
				if(window.location.search.indexOf("logout=ok")!=-1){
					chaine = chaine.replace("logout=ok",""); 
					window.location.replace(chaine);	
				}
			}else{
				
				if(window.location.search.indexOf("logout=ok")!=-1){
					chaine = chaine.replace("logout=ok",""); 
					window.location.replace(chaine);	
					
				}else{
					chaine = chaine.substring(0,chaine.lastIndexOf('#')); 
					window.location.replace(chaine);
				}
			}
		});
	}

// => ACTUALISATION PAGE COURANTE FADE OUT
	function fadeBody(){
		$('body').fadeOut('slow', function(){
			var chaine = window.location.toString();
			if(chaine.lastIndexOf('?')==-1){
				if(chaine.lastIndexOf('#')==-1){
					window.location.replace(chaine+'?fade=body');	
				}else{
					chaine = chaine.substring(0,chaine.lastIndexOf('#')); 
					window.location.replace(chaine+'?fade=body');	
				}
			}else{
				chaine = chaine.substring(0,chaine.lastIndexOf('?')); 
				window.location.replace(chaine+'?fade=body');	
			}
		});
	}

// => ACTUALISATION PAGE PARENTE FADE OUT
	function fadeBodyParent(){
		$('body').fadeOut('slow', function(){
			var chaine = window.location.toString();
			if(chaine.lastIndexOf('?')!=-1){
				chaine = chaine.substring(0,chaine.lastIndexOf('?')); 
			}
			
			chaine = chaine.substring(0,chaine.lastIndexOf('/'));
			chaine = chaine.substring(0,chaine.lastIndexOf('/')); 
		
			window.location.replace(chaine+'/?fade=body');
		});
	}
// => AFFICHAGE PAGE APRES ACTUALISATION FADE IN
	function fadeBodyIn(){
		var chaine = window.location.toString();

		if(chaine.indexOf('fade=body')!=-1){
			$('body').css('display', 'none');	
		}
		if($('body').css('display')=='none'){
			$('body').fadeIn();
		}
	}
// => GRISE BACKGROUND OUVERTURE MODAL ACTIVE LAPPUI SUR ENTRER
	function backOpac(mode){
		if(mode==true){
			$('.modalForm input').keydown(function(event){
				if (event.keyCode == '13') {
					$('.ui-button:last').click();
					return false;
				}	 
			});
			if($('.ui-widget-overlay').length>0){
				//montre le back gris
				$('.ui-widget-overlay').show();
				
				//redimmensionne le fond gris , si la taille du doc a changé			
				var h= $('body').height();
				if($('body').height()<$(document).height())h=$(document).height();
				$('.ui-widget-overlay').width(document.width);
				$('.ui-widget-overlay').height(h);
			}else{
				var h= $('body').height();
				if($('body').height()<$(document).height())h=$(document).height();
				$('.ui-dialog').before('<div class="ui-widget-overlay" style="width:'+document.width+'px; height:'+h+'px; z-index: 1000;"></div>');
			}	
		}else{
			$('.ui-widget-overlay').hide();
		}
	}

// => LOADING
	function loading(){
		$('#loading').dialog({
			width: 50,
			height: 50,	
			resizable: false,
			draggable:false
		});		
	}
	
// => END LOADING
	function endLoading(nameClass){
		tooltipBody();
		//TRADUCTION SAVE CANCEL
		$('.ui-button-text').each(function(){
			if($(this).html()=='save'){
				if(nameClass=="signalInfo editInfo"){
					$(this).html($('#modalSend').html());
				}else{
					$(this).html($('#modalSave').html());
				}
			}else if($(this).html()=='cancel'){
				$(this).html($('#modalCancel').html());
			}else if($(this).html()=='fiche'){
				$(this).html($('#modalFiche').html());
			}else if($(this).html()=='noFiche'){
				$(this).html($('#modalNoFiche').html());
			}
		});
		
		//AJOUT DE LA TITLE BAR POUR LA SECONDE B>OITE DE DIALOGUE
		$(".ui-dialog-titlebar").css('display','block'); 
		
		//SIGNAL INFO SI LE CLIENT VEUT AJOUTER UNE INFO ON AUGMENTE LA TAILLE DE LA MODAL
		$('#addNewValueSignal').click(function(){
			$('#addNewValContenair').fadeIn(function(){
				//la taille du doc a pu augmenter donc on augmente la taille du fond gris
				backOpac(true);	
			});
			$('#modalForm').css('height', '100%');
			if ($('#gMapParams').length>0){
				initialize();
				$('#resetCoords').click(function(){
					$('#google_lat').val("");
					$('#google_long').val("");
					showAddress();
				});
			}

			
		});
		
		//SUPPRESSION DE LA BOX LOADING
		$('#loading').dialog('destroy');		
	}
	
// => CLOSE MODAL
	function closeModal(elm){
		$(elm).dialog("destroy");
		$(elm).remove();	
	}

// => SAVE EDIT AND ADD
	function saveInfo(elm){
		var info = $('#modalFormPost').serialize();
		$.ajax({
			type: "POST",
			url: domain+"/do/modal/edit/gdm_modal_save.php",
			data: info,
			success: function(newValue){
				var val = $.trim(newValue).split('SEP/');
				displayVal(val, elm)
			}
		});
	}



// => AFFICHAGE DES VALEURS MODIFIER OU AJOUTER
	function displayVal(val,elm){
		//Actulisation ,modification de structure du fiche (ajout d'adresse force titre a staut fiche=2...)
		if($.trim(val[0])=='/FICHE/ACTUALIZE' || $.trim(val[1])=='/FICHE/ACTUALIZE'){
			fadeBody();	
		}else if($.trim(val[1])=='/ACTUALIZE/PARENT'){
			fadeBodyParent();
			
		//client signal info, aucune modification de valeur, mais message de remerciement
		}else if($.trim(val[0])=='SIGNAL/INFO'){
			$('#signalSend').dialog({
				width: 400,
				resizable: false,
				disabled:true,
				draggable:false,
				buttons: {
					ok: function() {
						$(this).dialog("destroy");
						backOpac(false);
					}
				},
				open: function(event, ui) { 
					backOpac(true);
					$(this).css('height', '100%');
					$(this).dialog('option', 'position', 'center');
				},
				close: function(event, ui) { 
					backOpac(false);
					$(this).dialog("destroy");
				}
			});
			$(".ui-dialog-titlebar").css('display','block'); 
		
		//supprime info
		}else if($.trim(val[0])=='DEL/INFO'){
			$(elm).prev('.value').fadeOut()
			$(elm).fadeOut(function(){
				$(elm).prev('.value').remove();
				$(elm).remove();
			});
		
		//edit personne
		//supprime info
		}else if($.trim(val[0])=='DEL/INFO/GRADE'){
			$(elm).parent().find('.value').fadeOut();
			$(elm).fadeOut(function(){
				$(elm).parent().find('.value').remove();
				$(elm).remove();
			});
			
		}else if($.trim(val[0])=='DEL/ADRESSE/'){
			$(elm).prev('.value').fadeOut();
			$('#myGMap').fadeOut();
			$(elm).fadeOut(function(){
				$(elm).prev('.value').remove();
				$('#myGMap').remove();
				$(elm).remove();
			});
			setStatut(elm);
		
		//edit personne
		}else if($.trim(val[0])=='EDIT/BODY'){
			$(elm).parent().parent().prepend(val[1]);
			
			setModalBoxAdd();
			setModalBoxEdit();
			$(elm).parent('p').remove();
		
		}else if(val[0]=='/NEW/TITLE'){
			var h = $(elm).prev().get(0).tagName;
		
			//le parent n'est pas un titre, Ajout title premier niveau
			if(h.substr(0,1)=='A'){
				$(elm).next('.box_sortable').append('<li class="sub_box_info activeSort"><span class="activeSort"></span><h2>'+val[1]+'</h2>'+val[2]+'</li>');;
				setModalBoxAdd();
				setModalBoxEdit();
				
			}else{
				
				h = parseInt(h.substr(1,1));
				
				h++;
				//v�rifie si le ul est pr�sent
				if($(elm).next('.box_sortable').length>0){
					$(elm).next('.box_sortable').append('<li class="sub_box_info activeSort"><span class="activeSort"></span><h2>'+val[1]+'</h2>'+val[2]+'</li>');
				}else {
					$(elm).after('<ul class="box_sortable sortable ui-sortable"><li class="sub_box_info activeSort"><span class="activeSort"></span><h'+h+'>'+val[1]+'</h'+h+'>'+val[2]+'</li></ul>');
					sortable();
				}
				setModalBoxAdd();
				setModalBoxEdit();
				setModalDelFiche();
			}
		}else if(val[0]=='/NEW/TITLE/SOM/'){
			$(elm).nextAll('.sortable').append('<li class="sub_box_info activeSort"><span class="activeSort"></span><h2>'+val[1]+'</h2></li>');;
			setModalBoxAdd();
			setModalBoxEdit();
		
		}else if(val[0]=='/NEW/BODY'){
			newBody(val[1],elm);
			
		//edition basique
		}else if(val[0]=='/ADD/BODY/'){
			if($(elm).next('.box_body_sortable').length>0){
				$(elm).next('.box_body_sortable').append('<li class="sub_box_info activeSort bodySort"><span class="activeSort"></span>'+val[1]+'</li>');
				}else {
					$(elm).after('<ul class="box_body_sortable sortable ui-sortable"><li class="sub_box_info activeSort bodySort"><span class="activeSort"></span>'+val[1]+'</li></ul>');
					sortable();
				}
				setModalBoxAdd();
				setModalDelBody();
		}else if(val[0]=='/ADD/GRADE/'){
			$(elm).prev('p').find('.value').html(val[1]);
			$(elm).prev('p').append(val[2]);
			setModalBoxEdit();	
			
		}else if(val[0]=='/EDIT/GRADE/'){
			$(elm).parent().find('.value').html(val[1]);

		}else{
			//edition basique
			if($(elm).attr('class')=='editInfo'){
				if($(elm).prevAll('.value').length>0){
					$(elm).prevAll('.value').html(val[0]);
				}else{
					$(elm).prev('a').children('.value').html(val[0]);
				}
			}else{
				//ajout Info
				$(elm).after(val[0]);
				setModalBoxAdd();
				setModalBoxEdit();
				setModalDelBody();
				
				if(typeof(val[1])!='undefined'){
					$('#myGMap').attr('title', val[1]+','+val[2])
					placeMarkers();
				}
			}
			//modification gmaps
			if(typeof(val[1])!='undefined' && $.trim(val[1])!='/FICHE/ACTUALIZE' && $.trim(val[0])!='EDIT/BODY' && $.trim(val[0])!='/NEW/TITLE/SOM/'){
				$('#myGMap').attr('title', val[1]+','+val[2])
				placeMarkers();
			}
		}
		
		
			
			
	}
	
// => AFFICHAGE DES VALEURS MODIFIER OU AJOUTER
	function errorModal(){
		$('#modalFormError').dialog({
			width: 600,
			position:'middle',
			resizable: false,
			disabled:true,
			draggable:false,

			buttons: {
				ok: function() {
					$(this).dialog('destroy');
					backOpac(false);;	
				}
			},
			open: function(event, ui) { 
				backOpac(true);
				$(this).css('height', '100%');
				$(this).dialog('option', 'position', 'center');
			},
			close: function(event, ui) { 
				backOpac(false);
			}
		});
		endLoading("ttt");
		
	}
// => FONCTION QUI AFFICHE UNE ICONE POUR MONTRER OU IL Y A UNE ERREUR
	function errorForm(elm){
		$(elm).addClass('editError');
		$(elm).prev('label').addClass('editError');
		//$(elm).after('<span class="errorCursor"><img src="'+domain+'/files/design/signalError.png" class="errorCursor" /></span>');
		if($(elm).parent().children('.errorCursor').length>0){
			$(elm).parent().children('.errorCursor').children('img').animate({height: '20px', width:'20px', left: '0px', top:'0px'}, 500, 'easeOutBounce');
		}
		$(elm).focus(function(){
			$(elm).removeClass('editError');
			$(elm).prev('label').removeClass('editError');
			$(elm).parent().children('.errorCursor').children('img').width(0).height(0).css('left','9px').css('top','9px');
		});
	}


function htmlentities (string, quote_style) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: nobbler
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Ratheous
    // -    depends on: get_html_translation_table
    // *     example 1: htmlentities('Kevin & van Zonneveld');
    // *     returns 1: 'Kevin &amp; van Zonneveld'
    // *     example 2: htmlentities("foo'bar","ENT_QUOTES");
    // *     returns 2: 'foo&#039;bar'
    var hash_map = {},
        symbol = '',
        tmp_str = '',
        entity = '';
    tmp_str = string.toString();

    if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) {
        return false;
    }
    hash_map["'"] = '&#039;';
    for (symbol in hash_map) {
        entity = hash_map[symbol];
        tmp_str = tmp_str.split(symbol).join(entity);
    }

    return tmp_str;
}

