//www.baptiste-gauthier.fr/gmap/

//<![CDATA[
utilsNQ = 
{
		debugMode	: true,
		tabLettre : ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', 'P', 'Q','R','S','T','U','V','W','X','Y','Z'],
		debug : function(mess,erreur) 
		{
			if (utilsNQ.debugMode) 
			{
				alert(mess+'   =>    '+erreur);
			}
			else
			{
					
			}
		},
		
		
		deg2rad : function(angle) 
		{
			 return (angle/180)*Math.PI;
		},
		
		get_distance_m : function(lat1, lng1, lat2, lng2) 
		{
			  var earth_radius = 6378137;   // Terre = sphère de 6378km de rayon
			  var rlo1 = utilsNQ.deg2rad(lng1);
			  var  rla1 = utilsNQ.deg2rad(lat1);
			  var  rlo2 = utilsNQ.deg2rad(lng2);
			  var  rla2 =  utilsNQ.deg2rad(lat2);
			  var  dlo = (rlo2 - rlo1) / 2;
			  var  dla = (rla2 - rla1) / 2;
			  var  a = (Math.sin(dla) * Math.sin(dla)) + Math.cos(rla1) * Math.cos(rla2) * (Math.sin(dlo) * Math.sin(dlo));
			  var  d = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
			  return (earth_radius * d);
		},

		in_array : function(tableau, valeur)
		{
			for(var u=0;u<tableau.length;u++)
				if(tableau[u] == valeur) return true;
			
			return false;
		},
		
        is_mail : function (mail){
            var filter_email=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
            return filter_email.test(mail);
        },
		
		trim : function(myString)
		{	
			if(typeof(myString) == 'string'){
				return myString.replace(/^\s+/g,'').replace(/\s+$/g,'')
			}
		},
		
		getX : function(id){
			var x = 0;
			var element = document.getElementById(id);
			while(e){
				x += e.offsetLeft;
				e = e.offsetParent;
			}
			return x;
		},
		
		getY : function(id){
			var y = 0;
			var element = document.getElementById(id);
			for(var e = element; e; e = e.offsetParent)
				y += e.offsetTop;
				
			for(e = element.parentNode; e &&e != document.body ; e = e.parentNode)
				if(e.scrollTop) y -= e.scrollTop;
				
			return y;
		},
		
		convertDMS2DDD : function(degre, minute, seconde, isLat) {
			sign = (degre < 0 ? -1 : 1);
			absDeg = Math.abs(degre);
			if (isLat && absDeg > 90) {
				alert('La valeur degré de latitude doit être dans entre -90 et 90');
			} else if (!isLat && absDeg > 180) {
				alert('La valeur degré de longitude doit être dans entre -180 et 180');		
			} else if(0 > minute || minute >= 60) { 
				alert('La valeur minute doit être dans entre 0 et 59');
			} else if(0 > seconde  || seconde  > 60) {
				alert('La valeur seconde doit être dans entre 0 et 60');
			} else {
				 value = (absDeg + (minute/60) + (seconde/3600)) * sign;
				 return Math.round(value * 10000) / 10000;
			}
			return null;
		},
		
	convertDMM2DDD : function(degre, minute, isLat) {
			minute_int = Math.floor(minute);
			seconde = (minute - minute_int) * 100;
		
			sign = (degre < 0 ? -1 : 1);
			absDeg = Math.abs(degre);
			if (isLat && absDeg > 90) {
				alert('La valeur degré de latitude doit être dans entre -90 et 90');
			} else if (!isLat && absDeg > 180) {
				alert('La valeur degré de longitude doit être dans entre -180 et 180');		
			} else if(0 > minute || minute >= 60) { 
				alert('La valeur minute doit être dans entre 0 et 59');
			} else {
			 	value = (absDeg + (minute/60)) * sign;
				return Math.round(value * 10000) / 10000;
			}	
			return null;
		}

};
//]]>
