// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
// jQuery.noConflict();
//Voir a enlever ca... ne fait pas de sense mais est peut-etre necessaire dans certaine page
//self.setTimeout('placeMark(getAddress())', 3000);

// self.setTimeout('loadSalePoints(getAddresses())', 1000);

function toggleElementsByClass(searchClass,node,tag){
	elements = getElementsByClass(searchClass,node,tag);
	for (var i=0; i < elements.length; i++) {
		elements[i].toggle();
	};
}

function getIdElementsByClass(searchClass,node,tag){
	elements = getElementsByClass(searchClass,node,tag);
	ids = [];
	for (var i=0; i < elements.length; i++) {
		ids[i] = elements[i].id;
	};
	return ids;
}

function getValueElementsByClass(searchClass,node,tag){
	elements = getElementsByClass(searchClass,node,tag);
	ids = [];
	for (var i=0; i < elements.length; i++) {
		ids[i] = elements[i].value;
	};
	return ids;
}

function getAddresses(){
	document.getElementsByTagName('input');
}

function getValuesByClass(searchClass,node,tag){
	values = [];
	elements = getElementsByClass(searchClass,node,tag);
	for (var i=0; i < elements.length; i++) {
		if(elements[i].checked){
			values[i] = elements[i].value;
		}
	}; 
	return values;
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function update_lgn_lat(){
	var geocoder = new GClientGeocoder();

	var addresses = getElementsByClass('address', null, 'input');
	var countries = getElementsByClass('country', null, 'select');
	var cities = getElementsByClass('city', null, 'input');
	var postal_codes = getElementsByClass('postal_code', null, 'input');
	var nbre_entrer = addresses.length - 1;
	var idx = 0;
	do{
		var full_address = addresses[idx].value + ' ' + cities[idx].value + ' ' + countries[idx].value + ' ' + postal_codes[idx].value;
		geocoder.getLatLng(full_address, function(point){
			if(point != null){
				var hidden_lgns = getElementsByClass('add_lgn', null, 'input');
				var hidden_lats = getElementsByClass('add_lat', null, 'input');

				hidden_lgns[idx].value = point.lng();
				hidden_lats[idx].value = point.lat();
			};
		});

		idx++;
	}while(idx < nbre_entrer);
	
	// for(idx;idx < nbre_entrer;idx++){
	// 	alert('tata');
	// 	var full_address = addresses[idx].value + ' ' + cities[idx].value + ' ' + countries[idx].value + ' ' + postal_codes[idx].value;
	// 	geocoder.getLatLng(full_address, function(point){
	// 		if(point != null){
	// 			alert(point.lng());
	// 			hidden_lgns[idx].value = point.lng();
	// 			hidden_lats[idx].value = point.lat();
	// 		}
	// 	});
	// }
	
}

function loadSalePoints(addresses){
	var latlng = new google.maps.LatLng(46.5211, -72.6323);
    // var myOptions = {
    //   zoom: 12,
    //   center: latlng,
    //   mapTypeId: google.maps.DEFAULT_MAP_TYPES[0]// google.maps.MapTypeId.ROADMAP
    // };
    // var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
		found_map = document.getElementById("map_sale_points");
		if(found_map != null){
		var map = new GMap2(found_map);
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GScaleControl());
		alert(addresses);
		var idx = 0;
		do{
			
			var marker = new GMarker(point);
			    map.addOverlay(marker);
			    marker.openInfoWindowHtml(address);
		}while(address)
		map.setCenter(latlng, 7, G_NORMAL_MAP);
		}
}

function getAddress(){
	var address_field = document.getElementById("client_address_address");
	if(address_field == null){
			var address_field = document.getElementById("client_address_attributes_address");
			if(address_field == null){
				var address = '';
			}else{
				var address = document.getElementById("client_address_attributes_address").value + ' ' + document.getElementById("client_address_attributes_city").value + ' ' + document.getElementById("client_address_attributes_country").value + ' ' + document.getElementById("client_address_attributes_postal_code").value ;
			}
		}else{
		var address = document.getElementById("client_address_address").value + ' ' + document.getElementById("client_address_city").value + ' ' + document.getElementById("client_address_country").value + ' ' + document.getElementById("client_address_postal_code").value ;
	}
	return address;
}

function load_google_map(){
	var latlng = new google.maps.LatLng(46.5211, -72.6323);
    // var myOptions = {
    //   zoom: 12,
    //   center: latlng,
    //   mapTypeId: google.maps.DEFAULT_MAP_TYPES[0]// google.maps.MapTypeId.ROADMAP
    // };
    // var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
		found_map = document.getElementById("map_canvas");
		if(found_map != null){
		var map = new GMap2(found_map);
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GScaleControl());
		map.setCenter(latlng, 7, G_NORMAL_MAP);
		}
}


function placeMark(address){
	if(document.getElementById('client_address_longitude')){
		document.getElementById('client_address_longitude').value = '';
 		document.getElementById('client_address_latitude').value = '';
	}else{
		if(document.getElementById('client_service_address_attributes_longitude')){
			document.getElementById('client_service_address_attributes_longitude').value = '';
	   	document.getElementById('client_service_address_attributes_latitude').value = '';
		}else{
			document.getElementById('client_address_attributes_longitude').value = '';
	    document.getElementById('client_address_attributes_latitude').value = '';
		}
	}
	
	
	if(address != ''){
		if(document.getElementById("map_canvas")){
		var map = new GMap2(document.getElementById("map_canvas"));
		var geocoder = new GClientGeocoder();
	
		geocoder.getLatLng(
	    address,
		    function(point) {
		      if (!point) {
						document.getElementById('notice').innerHTML = address + ' est introuvable';
		      } else {
						map.addControl(new GLargeMapControl());
						map.addControl(new GMapTypeControl());
						map.addControl(new GScaleControl());
		        map.setCenter(point, 13);
		        var marker = new GMarker(point);
		        map.addOverlay(marker);
		        marker.openInfoWindowHtml(address);
						//alert(marker.getLatLng().lat());
						document.getElementById('notice').innerHTML = '';
						longitude = document.getElementById('client_address_longitude')
						if(longitude == null){
							longitude = document.getElementById('client_service_address_attributes_longitude')
							if(longitude == null){
								document.getElementById('client_address_attributes_longitude').value = marker.getLatLng().lng();
						    document.getElementById('client_address_attributes_latitude').value = marker.getLatLng().lat();
							}else{
								document.getElementById('client_service_address_attributes_longitude').value = marker.getLatLng().lng();
						    document.getElementById('client_service_address_attributes_latitude').value = marker.getLatLng().lat();
							}
						}else{
							document.getElementById('client_address_longitude').value = marker.getLatLng().lng();
					    document.getElementById('client_address_latitude').value = marker.getLatLng().lat();
						}
				  }
		    }
		  );
		}
	}
}

function placeMarker(map,address,latlng){
	if(address != ''){
		var geocoder = new GClientGeocoder();

		geocoder.getLatLng(
	    address,
	    function(point) {
				// latLng = point;
	      if (!point) {
					// document.getElementById('notice').innerHTML = address + ' est introuvable';
	      } else {
	        var marker = new GMarker(point);
	        map.addOverlay(marker);
	        marker.openInfoWindowHtml(address);
					if(latlng.length){
						latlng += point;
					}else{
						latlng = point;
					}
					//alert(marker.getLatLng().lat());
					//document.getElementById('notice').innerHTML = '';
			  }
	    }
	  );
	}
}	

function placeInternetMarker(lat,lng,range){
	var point = new GLatLng(lat,lng);
  var marker = new GMarker(point);
  map.addOverlay(marker);
	internetLatLng.push([point,range]);
}	

function placeProspectMarker(address){
	if(address != ''){
		var geocoder = new GClientGeocoder();

		geocoder.getLatLng(
	    address,
	    function(point) {
				// latLng = point;
	      if (!point) {
					// document.getElementById('notice').innerHTML = address + ' est introuvable';
	      } else {
	        var marker = new GMarker(point);
	        map.addOverlay(marker);
	        marker.openInfoWindowHtml(address);
					prospectLatLng = point;
					//alert(marker.getLatLng().lat());
					//document.getElementById('notice').innerHTML = '';
			  }
	    }
	  );
	}
}