// WAITING
var waitingAjax='<img src="http://www.l-acoustics.com/img/common/ajax-add-basket.gif" />';
// ICON MAKER
var MapIconMaker = {};
MapIconMaker.createMarkerIcon = function(opts) {
  var width = opts.width || 32;
  var height = opts.height || 32;
  var primaryColor = opts.primaryColor || "#ff0000";
  var strokeColor = opts.strokeColor || "#000000";
  var cornerColor = opts.cornerColor || "#ffffff";
  var baseUrl = "http://chart.apis.google.com/chart?cht=mm";
  var iconUrl = baseUrl + "&chs=" + width + "x" + height + "&chco=" + cornerColor.replace("#", "") + "," + primaryColor.replace("#", "") + "," + strokeColor.replace("#", "") + "&ext=.png";
  var icon = new GIcon(G_DEFAULT_ICON);
  icon.image = iconUrl;
  icon.iconSize = new GSize(width, height);
  icon.shadowSize = new GSize(Math.floor(width*1.6), height);
  icon.iconAnchor = new GPoint(width/2, height);
  icon.infoWindowAnchor = new GPoint(width/2, Math.floor(height/12));
  icon.printImage = iconUrl + "&chof=gif";
  icon.mozPrintImage = iconUrl + "&chf=bg,s,ECECD8" + "&chof=gif";
  var iconUrl = baseUrl + "&chs=" + width + "x" + height + "&chco=" + cornerColor.replace("#", "") + "," + primaryColor.replace("#", "") + "," + strokeColor.replace("#", "");
  icon.transparent = iconUrl + "&chf=a,s,ffffff11&ext=.png";
  icon.imageMap = [
      width/2, height,
      (7/16)*width, (5/8)*height,
      (5/16)*width, (7/16)*height,
      (7/32)*width, (5/16)*height,
      (5/16)*width, (1/8)*height,
      (1/2)*width, 0,
      (11/16)*width, (1/8)*height,
      (25/32)*width, (5/16)*height,
      (11/16)*width, (7/16)*height,
      (9/16)*width, (5/8)*height
  ];
  for (var i = 0; i < icon.imageMap.length; i++) {
    icon.imageMap[i] = parseInt(icon.imageMap[i]);
  }
  return icon;
}
// ICON : COLOR & SIZE
var myIcon = new GIcon();
myIcon.image = "img/map/pt_lacoustics.png";
myIcon.iconSize = new GSize(11,11);
myIcon.iconAnchor = new GPoint(5,5);
myIcon.infoWindowAnchor = new GPoint(13, 1);
var markerOptions = {
    icon: myIcon
};
// ICON SEARCH LOCATION
var myIconSearch = new GIcon();
myIconSearch.image = "img/map/pt_lacoustics_search.png";
myIconSearch.iconSize = new GSize(11,11);
myIconSearch.iconAnchor = new GPoint(5,5);
myIconSearch.infoWindowAnchor = new GPoint(13, 1);
var markerOptionsSearch = {
    icon: myIconSearch
};
// ICON SUB CPY
var myIconSub = new GIcon();
myIconSub.image = "img/map/pt_lacoustics_sub.png";
myIconSub.iconSize = new GSize(11,11);
myIconSub.iconAnchor = new GPoint(5,5);
myIconSub.infoWindowAnchor = new GPoint(8, 1);
var markerOptionsSub = {
    icon: myIconSub
};
// INFOS CIRCLE
var cercleCouleur = "#ff0000";
var cercleEpaisseur = "2.5";
var cercleOpacite = ".5";
var disqueCouleur = "#ffffff";
var disqueOpacite = ".1";
var segment = 60;
// XML PARSING
function init(file,type) {
	// TOOLS MAP
	var map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(0,0),1);
	map.setMapType(G_NORMAL_MAP);
	map.addControl(new GMapTypeControl());
	map.addControl(new GSmallMapControl());
	map.enableScrollWheelZoom();
	// XML
	GDownloadUrl(file, function(data, responseCode) {
	  if(responseCode == 200) {
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("marker");
		var length_xml = markers.length;
		for (i = 0; i < length_xml; i++) {
			if(markers[i].getElementsByTagName("long")[0].childNodes.length > 0 && markers[i].getElementsByTagName("lat")[0].childNodes.length > 0 ) {
			var point = new GLatLng(parseFloat(markers[i].getElementsByTagName("long")[0].firstChild.nodeValue), parseFloat(markers[i].getElementsByTagName("lat")[0].firstChild.nodeValue));
			}
			// GET INFOS
				if(markers[i].getElementsByTagName("logo")[0].childNodes.length > 0) {
					var logo = markers[i].getElementsByTagName("logo")[0].firstChild.nodeValue;
				} else {
					var logo = null;	
				}
				if(markers[i].getElementsByTagName("name")[0].childNodes.length > 0) {
					var name = markers[i].getElementsByTagName("name")[0].firstChild.nodeValue;
				} else {
					var name = null;	
				}
				if(markers[i].getElementsByTagName("contact_name")[0].childNodes.length > 0) {
					var contact_name = markers[i].getElementsByTagName("contact_name")[0].firstChild.nodeValue;
				} else {
					var contact_name = null;	
				}
				if(markers[i].getElementsByTagName("street")[0].childNodes.length > 0) {
					var street = markers[i].getElementsByTagName("street")[0].firstChild.nodeValue;
				} else {
					var street = null;	
				}
				if(markers[i].getElementsByTagName("country")[0].childNodes.length > 0) {
					var country = markers[i].getElementsByTagName("country")[0].firstChild.nodeValue;
				} else {
					var country = null;	
				}
				if(markers[i].getElementsByTagName("city")[0].childNodes.length > 0) {
					var city = markers[i].getElementsByTagName("city")[0].firstChild.nodeValue;
				} else {
					var city = null;	
				}
				if(markers[i].getElementsByTagName("zip_code")[0].childNodes.length > 0) {
					var zip_code = markers[i].getElementsByTagName("zip_code")[0].firstChild.nodeValue;
				} else {
					var zip_code = null;	
				}
				if(markers[i].getElementsByTagName("phone")[0].childNodes.length > 0) {
					var phone = markers[i].getElementsByTagName("phone")[0].firstChild.nodeValue;
				} else {
					var phone = null;	
				}
				if(markers[i].getElementsByTagName("fax")[0].childNodes.length > 0) {
					var fax = markers[i].getElementsByTagName("fax")[0].firstChild.nodeValue;
				} else {
					var fax = null;	
				}
				if(markers[i].getElementsByTagName("email")[0].childNodes.length > 0) {
					var email = markers[i].getElementsByTagName("email")[0].firstChild.nodeValue;
				} else {
					var email = null;	
				}
				if(markers[i].getElementsByTagName("web")[0].childNodes.length > 0) {
					var web = markers[i].getElementsByTagName("web")[0].firstChild.nodeValue;
				} else {
					var web = null;	
				}
				if(markers[i].getElementsByTagName("postal_adress")[0].childNodes.length > 0) {
					var postal_adress = markers[i].getElementsByTagName("postal_adress")[0].firstChild.nodeValue;
				} else {
					var postal_adress = 0;	
				}
				// ARRAY MARKER
				var arrayInfos = new Array(name, street, country, city, zip_code, phone, fax, email, contact_name, logo, web, postal_adress);
				// START LOOP FOR SUB COUNTRY
					var sub_marker = markers[i].getElementsByTagName("sub_country");
					var sub_country_length = markers[i].getElementsByTagName("sub_country").length;
					if(sub_country_length > 0) {
						for(z = 0; z < sub_country_length; z++) {
							if(sub_marker[z].getElementsByTagName("long_sub")[0].childNodes.length > 0 && sub_marker[z].getElementsByTagName("lat_sub")[0].childNodes.length > 0) {
							var point_sub = new GLatLng(parseFloat(sub_marker[z].getElementsByTagName("long_sub")[0].firstChild.nodeValue), parseFloat(sub_marker[z].getElementsByTagName("lat_sub")[0].firstChild.nodeValue)); 
							var arrayInfosSub = new Array(name, street, sub_marker[z].getElementsByTagName("name_sub")[0].firstChild.nodeValue, city, zip_code, phone, fax, email, contact_name, logo, web);
							var marker_sub = createSubCountry(point_sub, point, arrayInfosSub, map);
							map.addOverlay(marker_sub);
							}
						}
					}
				// END LOOP SUB COUNTRY
			var marker = createMarker(point, arrayInfos, type);
			map.addOverlay(marker);
		}
	  } else if(responseCode == -1) {
		alert("Data request timed out. Please try later.");
	  } else { 
		alert("Request resulted in error. Check XML file is retrievable.");
	  }								   
	});
}
// FIX SUB COUNTRY
function createSubCountry(point_sub, point_src, arrayInfos, map_src) {
	var marker_sub = new GMarker(point_sub, markerOptionsSub);
	// HTML POPUP
	var end_html = '<div class="nameCompany"><div align="center"><img src="admin/distributor_img/'+arrayInfos[9]+'" /></div><p><b>' + arrayInfos[0] + '</b></p>';
	if(arrayInfos[2] != null) {
		end_html += '<p>Country: '+arrayInfos[2]+'</p>';	
	}
	if(arrayInfos[11] == 0) {
		if(arrayInfos[3] != null) {
			end_html += '<p>City: '+arrayInfos[3]+'</p>';	
		}
		if(arrayInfos[1] != null) {
			end_html += '<p>Adress: '+arrayInfos[1]+'</p>';	
		}
		if(arrayInfos[4] != null) {
			end_html += '<p>Zip code: '+arrayInfos[4]+'</p>';	
		}
	}
	if(arrayInfos[8] != null) {
		end_html += '<p>Contact name: '+arrayInfos[8]+'</p>';	
	}
	if(arrayInfos[5] != null) {
		end_html += '<p>Phone: '+arrayInfos[5]+'</p>';	
	}
	/*if(arrayInfos[6] != null) {
		end_html += '<p>Fax: '+arrayInfos[6]+'</p>';	
	}*/
	if(arrayInfos[7] != null) {
		end_html += '<p>Email: <a href="mailto:'+arrayInfos[7]+'">'+arrayInfos[7]+'</a></p>';	
	}
	if(arrayInfos[10] != null) {
		end_html += '<p>Web: <a href="http://'+arrayInfos[10]+'">'+arrayInfos[10]+'</a></p>';
	}
	end_html += '</div>';
	var lineBwn2Pts = new GPolyline([point_sub,point_src], "#0084ff", 5);
	// ROLLOVER DRAWING LINES
	GEvent.addListener(marker_sub, 'mouseover', function() {
		map_src.addOverlay(lineBwn2Pts);
	});
	// ROLLOUT DRAWING LINES
	GEvent.addListener(marker_sub, 'mouseout', function() {
		map_src.removeOverlay(lineBwn2Pts);
	});	
	// POPUP ON CLICK
	GEvent.addListener(marker_sub, 'click', function() {
		marker_sub.openInfoWindowHtml(end_html);
	});
	return marker_sub;
}
// FIX MARKER + POPUP INFOS
function createMarker (point, arrayInfos,type) {
	var marker = new GMarker(point, markerOptions);
	// HTML POPUP
	var end_html = '<div class="nameCompany"><div align="center"><img src="admin/distributor_img/'+arrayInfos[9]+'" /></div><p><b>' + arrayInfos[0] + '</b></p>';
	if(arrayInfos[2] != null) {
		end_html += '<p>Country: '+arrayInfos[2]+'</p>';	
	}
	if(arrayInfos[11] == 0) {
		if(arrayInfos[3] != null) {
			end_html += '<p>City: '+arrayInfos[3]+'</p>';	
		}
		if(arrayInfos[1] != null) {
			end_html += '<p>Adress: '+arrayInfos[1]+'</p>';	
		}
		if(arrayInfos[4] != null) {
			end_html += '<p>Zip code: '+arrayInfos[4]+'</p>';	
		}
	}
	if(arrayInfos[8] != null) {
		end_html += '<p>Contact name: '+arrayInfos[8]+'</p>';	
	}
	if(arrayInfos[5] != null) {
		end_html += '<p>Phone: '+arrayInfos[5]+'</p>';	
	}
	/*if(arrayInfos[6] != null) {
		end_html += '<p>Fax: '+arrayInfos[6]+'</p>';	
	}*/
	if(arrayInfos[7] != null) {
		end_html += '<p>Email: <a href="mailto:'+arrayInfos[7]+'">'+arrayInfos[7]+'</a></p>';	
	}
	if(arrayInfos[10] != null) {
		end_html += '<p>Web: <a href="http://'+arrayInfos[10]+'">'+arrayInfos[10]+'</a></p>';
	}
	end_html += '</div>';
	// POPUP ON CLICK
	GEvent.addListener(marker, 'click', function() {
		marker.openInfoWindowHtml(end_html);
	});
	return marker;
}
// SEARCH LOCATION
function searchLocationNear(searchUrl,type) {
	var place = document.getElementById("locationUser").value;
	var radius = document.getElementById("valueRadius").value;
	// HELP
	document.getElementById("zoneRadius").style.display = "none";
	document.getElementById("zoneNoWords").style.display = "none";
	// TOOLS MAP
	var map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(0,0),1);
	map.setMapType(G_NORMAL_MAP);
	map.addControl(new GMapTypeControl());
	map.addControl(new GSmallMapControl());
	map.enableScrollWheelZoom();
	// SEARCH DECODER
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(place, function(point) {
		if(point != null) {
		map.clearOverlays();
		if(radius == 50 || radius == 100) {
			coeffZoom = 7;
		} else if(radius == 250) {
			coeffZoom = 6;
		} else if(radius == 500) {
			coeffZoom = 5;
		} else if(radius == 1000) {
			coeffZoom = 4;
		} else if(radius == 1500) {
			coeffZoom = 3;	
		} else if(radius > 1500) {
			coeffZoom = 2;	
		} else {
			coeffZoom = 1;	
			document.getElementById("zoneRadius").style.display = "block";
		}
		// FIX PT SEARCH
		map.setCenter(point,coeffZoom);
		var marker_search = new GMarker(point,myIconSearch);
		map.addOverlay(marker_search);
		// FIX CIRCLE
		var pointsCercle = new Array();
		var step = parseInt(360/segment)||10;
		var centre = map.getCenter();
		var centreLat = centre.lat();
		var centreLng = centre.lng();
		var latConv = centre.distanceFrom(new google.maps.LatLng(centre.lat()+0.1, centre.lng()))/100;
		var lngConv = centre.distanceFrom(new google.maps.LatLng(centre.lat(), centre.lng()+0.1))/100;
		for(var i=0; i<=360; i+=step) {
			var calculLat = centreLat + (radius/latConv * Math.cos(i * Math.PI/180));
			var calculLng = centreLng + (radius/lngConv * Math.sin(i * Math.PI/180));
			var pint = new GLatLng(calculLat,calculLng);
			pointsCercle.push(pint);
		}
		polygoneCercle = new GPolygon(pointsCercle, cercleCouleur, cercleEpaisseur, cercleOpacite, disqueCouleur, disqueOpacite);
		map.addOverlay(polygoneCercle);
		}
		GDownloadUrl(searchUrl, function(data, responseCode) {
		if(responseCode == 200) {
		  var xml = GXml.parse(data);
		  var markers = xml.documentElement.getElementsByTagName("marker");
		  var length_xml = markers.length;
		  for (i = 0; i < length_xml; i++) {
			  var long = markers[i].getElementsByTagName("long")[0].firstChild.nodeValue;
			  var lat = markers[i].getElementsByTagName("lat")[0].firstChild.nodeValue;
			  startPoint = new LatLong(centreLat, centreLng);
			  endPoint = new LatLong(long,lat);
			  var dist = LatLong.distHaversine(startPoint, endPoint);
			  if(dist < radius) {
				  if(markers[i].getElementsByTagName("long")[0].childNodes.length > 0 && markers[i].getElementsByTagName("lat")[0].childNodes.length > 0 ) {
				  var point = new GLatLng(parseFloat(markers[i].getElementsByTagName("long")[0].firstChild.nodeValue), parseFloat(markers[i].getElementsByTagName("lat")[0].firstChild.nodeValue));
				  }
				  // GET INFOS
				  if(markers[i].getElementsByTagName("logo")[0].childNodes.length > 0) {
					  var logo = markers[i].getElementsByTagName("logo")[0].firstChild.nodeValue;
				  } else {
					  var logo = null;	
				  }
				  if(markers[i].getElementsByTagName("name")[0].childNodes.length > 0) {
					  var name = markers[i].getElementsByTagName("name")[0].firstChild.nodeValue;
				  } else {
					  var name = null;	
				  }
				  if(markers[i].getElementsByTagName("contact_name")[0].childNodes.length > 0) {
					  var contact_name = markers[i].getElementsByTagName("contact_name")[0].firstChild.nodeValue;
				  } else {
					  var contact_name = null;	
				  }
				  if(markers[i].getElementsByTagName("street")[0].childNodes.length > 0) {
					  var street = markers[i].getElementsByTagName("street")[0].firstChild.nodeValue;
				  } else {
					  var street = null;	
				  }
				  if(markers[i].getElementsByTagName("country")[0].childNodes.length > 0) {
					  var country = markers[i].getElementsByTagName("country")[0].firstChild.nodeValue;
				  } else {
					  var country = null;	
				  }
				  if(markers[i].getElementsByTagName("city")[0].childNodes.length > 0) {
					  var city = markers[i].getElementsByTagName("city")[0].firstChild.nodeValue;
				  } else {
					  var city = null;	
				  }
				  if(markers[i].getElementsByTagName("zip_code")[0].childNodes.length > 0) {
					  var zip_code = markers[i].getElementsByTagName("zip_code")[0].firstChild.nodeValue;
				  } else {
					  var zip_code = null;	
				  }
				  if(markers[i].getElementsByTagName("phone")[0].childNodes.length > 0) {
					  var phone = markers[i].getElementsByTagName("phone")[0].firstChild.nodeValue;
				  } else {
					  var phone = null;	
				  }
				  if(markers[i].getElementsByTagName("fax")[0].childNodes.length > 0) {
					  var fax = markers[i].getElementsByTagName("fax")[0].firstChild.nodeValue;
				  } else {
					  var fax = null;	
				  }
				  if(markers[i].getElementsByTagName("email")[0].childNodes.length > 0) {
					  var email = markers[i].getElementsByTagName("email")[0].firstChild.nodeValue;
				  } else {
					  var email = null;	
				  }
				  if(markers[i].getElementsByTagName("web")[0].childNodes.length > 0) {
					  var web = markers[i].getElementsByTagName("web")[0].firstChild.nodeValue;
				  } else {
					  var web = null;	
				  }
				  // ARRAY MARKER
				  var arrayInfos = new Array(name, street, country, city, zip_code, phone, fax, email, contact_name, logo, web);
				  // START LOOP FOR SUB COUNTRY
					  var sub_marker = markers[i].getElementsByTagName("sub_country");
					  var sub_country_length = markers[i].getElementsByTagName("sub_country").length;
					  if(sub_country_length > 0) {
						  for(z = 0; z < sub_country_length; z++) {
							  if(sub_marker[z].getElementsByTagName("long_sub")[0].childNodes.length > 0 && sub_marker[z].getElementsByTagName("lat_sub")[0].childNodes.length > 0) {
							  var point_sub = new GLatLng(parseFloat(sub_marker[z].getElementsByTagName("long_sub")[0].firstChild.nodeValue), parseFloat(sub_marker[z].getElementsByTagName("lat_sub")[0].firstChild.nodeValue)); 
							  var arrayInfosSub = new Array(name, street, sub_marker[z].getElementsByTagName("name_sub")[0].firstChild.nodeValue, city, zip_code, phone, fax, email, contact_name, logo, web);
							  var marker_sub = createSubCountry(point_sub, point, arrayInfosSub, map);
							  map.addOverlay(marker_sub);
							  }
						  }
					  }
				  // END LOOP SUB COUNTRY
			  var marker = createMarker(point, arrayInfos, type);
			  map.addOverlay(marker);
			  }
		  }
		} else if(responseCode == -1) {
		  alert("Data request timed out. Please try later.");
		} else { 
		  alert("Request resulted in error. Check XML file is retrievable.");
		}								   
		});
	});
}
// SEARCH COUNTRY
function searchCountry(searchUrl,type) {
	// START CLEAR CONTENT
	document.getElementById("contentWeb").innerHTML = "";
	// END CLEAR CONTENT
	var countryName = document.getElementById('countryUser').value;
	if(countryName != '') {
		var map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(0,0),1);
		map.setMapType(G_NORMAL_MAP);
		map.addControl(new GMapTypeControl());
		map.addControl(new GSmallMapControl());
		map.enableScrollWheelZoom();
		map.clearOverlays();
		// SEARCH DECODER
		var geocoder = new GClientGeocoder();
		geocoder.getLatLng(countryName, function(point) {
			map.setCenter(point,3);
		});
		// DETERMINE PTS
		GDownloadUrl(searchUrl, function(data) {
			var xml = GXml.parse(data);
			var test_search = new RegExp(countryName,"i");
			var markers = xml.documentElement.getElementsByTagName('marker');
			for (i = 0; i < markers.length; i++) {
				var country_name = markers[i].getElementsByTagName("country")[0].firstChild.nodeValue;
				var test_search = new RegExp(countryName,"i");
					  if(markers[i].getElementsByTagName("long")[0].childNodes.length > 0 && markers[i].getElementsByTagName("lat")[0].childNodes.length > 0 ) {
						  var point = new GLatLng(parseFloat(markers[i].getElementsByTagName("long")[0].firstChild.nodeValue), parseFloat(markers[i].getElementsByTagName("lat")[0].firstChild.nodeValue));
					  }
					  // GET INFOS
					  if(markers[i].getElementsByTagName("logo")[0].childNodes.length > 0) {
						  var logo = markers[i].getElementsByTagName("logo")[0].firstChild.nodeValue;
					  } else {
						  var logo = null;	
					  }
					  if(markers[i].getElementsByTagName("name")[0].childNodes.length > 0) {
						  var name = markers[i].getElementsByTagName("name")[0].firstChild.nodeValue;
					  } else {
						  var name = null;	
					  }
					  if(markers[i].getElementsByTagName("contact_name")[0].childNodes.length > 0) {
						  var contact_name = markers[i].getElementsByTagName("contact_name")[0].firstChild.nodeValue;
					  } else {
						  var contact_name = null;	
					  }
					  if(markers[i].getElementsByTagName("street")[0].childNodes.length > 0) {
						  var street = markers[i].getElementsByTagName("street")[0].firstChild.nodeValue;
					  } else {
						  var street = null;	
					  }
					  if(markers[i].getElementsByTagName("country")[0].childNodes.length > 0) {
						  var country = markers[i].getElementsByTagName("country")[0].firstChild.nodeValue;
					  } else {
						  var country = null;	
					  }
					  if(markers[i].getElementsByTagName("city")[0].childNodes.length > 0) {
						  var city = markers[i].getElementsByTagName("city")[0].firstChild.nodeValue;
					  } else {
						  var city = null;	
					  }
					  if(markers[i].getElementsByTagName("zip_code")[0].childNodes.length > 0) {
						  var zip_code = markers[i].getElementsByTagName("zip_code")[0].firstChild.nodeValue;
					  } else {
						  var zip_code = null;	
					  }
					  if(markers[i].getElementsByTagName("phone")[0].childNodes.length > 0) {
						  var phone = markers[i].getElementsByTagName("phone")[0].firstChild.nodeValue;
					  } else {
						  var phone = null;	
					  }
					  if(markers[i].getElementsByTagName("fax")[0].childNodes.length > 0) {
						  var fax = markers[i].getElementsByTagName("fax")[0].firstChild.nodeValue;
					  } else {
						  var fax = null;	
					  }
					  if(markers[i].getElementsByTagName("email")[0].childNodes.length > 0) {
						  var email = markers[i].getElementsByTagName("email")[0].firstChild.nodeValue;
					  } else {
						  var email = null;	
					  }
					  if(markers[i].getElementsByTagName("web")[0].childNodes.length > 0) {
						  var web = markers[i].getElementsByTagName("web")[0].firstChild.nodeValue;
					  } else {
						  var web = null;	
					  }
					  // ARRAY MARKER
					  var arrayInfos = new Array(name, street, country, city, zip_code, phone, fax, email, contact_name, logo, web);
					  // START LOOP FOR SUB COUNTRY
						  var sub_marker = markers[i].getElementsByTagName("sub_country");
						  var sub_country_length = markers[i].getElementsByTagName("sub_country").length;
						  if(sub_country_length > 0) {
							  for(z = 0; z < sub_country_length; z++) {
								  var name_sub = sub_marker[z].getElementsByTagName("name_sub")[0].firstChild.nodeValue;
								  var test_search_sub = new RegExp(countryName,"i");
								  if(name_sub.match(test_search_sub)) {
									  if(sub_marker[z].getElementsByTagName("long_sub")[0].childNodes.length > 0 && sub_marker[z].getElementsByTagName("lat_sub")[0].childNodes.length > 0) {
									  var point_sub = new GLatLng(parseFloat(sub_marker[z].getElementsByTagName("long_sub")[0].firstChild.nodeValue), parseFloat(sub_marker[z].getElementsByTagName("lat_sub")[0].firstChild.nodeValue)); 
										var arrayInfosSub = new Array(name, street, name_sub, city, zip_code, phone, fax, email, contact_name, logo, web);
										var marker_sub = createSubCountry(point_sub, point, arrayInfosSub, map);
										map.addOverlay(marker_sub);
										var marker = createMarker(point, arrayInfos, type);
										map.addOverlay(marker);
										createContentWeb(arrayInfos,"contentWeb");
									  }
								  }
							  }
						  }
					  // END LOOP SUB COUNTRY
			if(country_name.match(test_search)) {
				  var marker = createMarker(point, arrayInfos, type);
				  map.addOverlay(marker);
				  createContentWeb(arrayInfos,"contentWeb");
				}
			}
		})
	} else {
		init(searchUrl,type);	
	}
}
// SEARCH COMPANY NAME
function searchCompany(searchUrl,type) {
	// START CLEAR CONTENT
	document.getElementById("contentWeb").innerHTML = "";
	// END CLEAR CONTENT
	var companyName = document.getElementById('companyName').value;
	if(companyName != '') {
		var map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(0,0),1);
		map.setMapType(G_NORMAL_MAP);
		map.addControl(new GMapTypeControl());
		map.addControl(new GSmallMapControl());
		map.enableScrollWheelZoom();
		map.clearOverlays();
		// DETERMINE PTS
		GDownloadUrl(searchUrl, function(data) {
			var xml = GXml.parse(data);
			companyName = companyName.toUpperCase();
			var markers = xml.documentElement.getElementsByTagName('marker');
			for (i = 0; i < markers.length; i++) {
				var name = markers[i].getElementsByTagName("name")[0].firstChild.nodeValue;
				var test_search = new RegExp(companyName,"i");
				if(name.match(test_search)) {
				if(markers[i].getElementsByTagName("long")[0].childNodes.length > 0 && markers[i].getElementsByTagName("lat")[0].childNodes.length > 0 ) {
					var point = new GLatLng(parseFloat(markers[i].getElementsByTagName("long")[0].firstChild.nodeValue), parseFloat(markers[i].getElementsByTagName("lat")[0].firstChild.nodeValue));
					}
					// GET INFOS
					if(markers[i].getElementsByTagName("logo")[0].childNodes.length > 0) {
						var logo = markers[i].getElementsByTagName("logo")[0].firstChild.nodeValue;
					} else {
						var logo = null;	
					}
					if(markers[i].getElementsByTagName("name")[0].childNodes.length > 0) {
						var name = markers[i].getElementsByTagName("name")[0].firstChild.nodeValue;
					} else {
						var name = null;	
					}
					if(markers[i].getElementsByTagName("contact_name")[0].childNodes.length > 0) {
						var contact_name = markers[i].getElementsByTagName("contact_name")[0].firstChild.nodeValue;
					} else {
						var contact_name = null;	
					}
					if(markers[i].getElementsByTagName("street")[0].childNodes.length > 0) {
						var street = markers[i].getElementsByTagName("street")[0].firstChild.nodeValue;
					} else {
						var street = null;	
					}
					if(markers[i].getElementsByTagName("country")[0].childNodes.length > 0) {
						var country = markers[i].getElementsByTagName("country")[0].firstChild.nodeValue;
					} else {
						var country = null;	
					}
					if(markers[i].getElementsByTagName("city")[0].childNodes.length > 0) {
						var city = markers[i].getElementsByTagName("city")[0].firstChild.nodeValue;
					} else {
						var city = null;	
					}
					if(markers[i].getElementsByTagName("zip_code")[0].childNodes.length > 0) {
						var zip_code = markers[i].getElementsByTagName("zip_code")[0].firstChild.nodeValue;
					} else {
						var zip_code = null;	
					}
					if(markers[i].getElementsByTagName("phone")[0].childNodes.length > 0) {
						var phone = markers[i].getElementsByTagName("phone")[0].firstChild.nodeValue;
					} else {
						var phone = null;	
					}
					if(markers[i].getElementsByTagName("fax")[0].childNodes.length > 0) {
						var fax = markers[i].getElementsByTagName("fax")[0].firstChild.nodeValue;
					} else {
						var fax = null;	
					}
					if(markers[i].getElementsByTagName("email")[0].childNodes.length > 0) {
						var email = markers[i].getElementsByTagName("email")[0].firstChild.nodeValue;
					} else {
						var email = null;	
					}
					if(markers[i].getElementsByTagName("web")[0].childNodes.length > 0) {
						var web = markers[i].getElementsByTagName("web")[0].firstChild.nodeValue;
					} else {
						var web = null;	
					}
					// ARRAY MARKER
					var arrayInfos = new Array(name, street, country, city, zip_code, phone, fax, email, contact_name, logo, web);
					// START LOOP FOR SUB COUNTRY
						var sub_marker = markers[i].getElementsByTagName("sub_country");
						var sub_country_length = markers[i].getElementsByTagName("sub_country").length;
						if(sub_country_length > 0) {
							for(z = 0; z < sub_country_length; z++) {
								if(sub_marker[z].getElementsByTagName("long_sub")[0].childNodes.length > 0 && sub_marker[z].getElementsByTagName("lat_sub")[0].childNodes.length > 0) {
								var point_sub = new GLatLng(parseFloat(sub_marker[z].getElementsByTagName("long_sub")[0].firstChild.nodeValue), parseFloat(sub_marker[z].getElementsByTagName("lat_sub")[0].firstChild.nodeValue)); 
								var arrayInfosSub = new Array(name, street, sub_marker[z].getElementsByTagName("name_sub")[0].firstChild.nodeValue, city, zip_code, phone, fax, email, contact_name, logo, web);
								var marker_sub = createSubCountry(point_sub, point, arrayInfosSub, map);
								map.addOverlay(marker_sub);
								}
							}
						}
					// END LOOP SUB COUNTRY
					var marker = createMarker(point, arrayInfos, type);
					map.addOverlay(marker);
				}
			}
		})
	}
}
// CREATE CONTENT WEB
function createContentWeb(arrayInfos,id) {
	var html = document.getElementById(id).innerHTML;
	html += '<div class="searchWebContent">';
		html += '<p><b>' + arrayInfos[0] + '</b></p>';
		html += '<p>Country: '+arrayInfos[2]+'</p>';
		if(arrayInfos[3] != null) {
			html += '<p>City: '+arrayInfos[3]+'</p>';
		}
		html += '<p>Contact name: '+arrayInfos[8]+'</p>';
		if(arrayInfos[5] != null) {
			html += '<p>Phone: '+arrayInfos[5]+'</p>';	
		}
		/*if(arrayInfos[6] != null) {
			html += '<p>Fax: '+arrayInfos[6]+'</p>';	
		}*/
		html += '<p>Email: <a href="mailto:'+arrayInfos[7]+'">'+arrayInfos[7]+'</a></p>';	
		html += '<p>Web: <a href="http://'+arrayInfos[10]+'">'+arrayInfos[10]+'</a></p>';
		//html += '<p>Email: <a href="mailto:'+arrayInfos[7]+'">'+arrayInfos[7]+'</a></p>';	
		//html += '<p>Web: <a href="http://'+arrayInfos[8]+'">'+arrayInfos[8]+'</a></p>';	
	html += '</div>';	
	html += '<div class="clear">&nbsp;</div>';
	document.getElementById(id).innerHTML = html;
	document.getElementById(id).style.display = "block";
	replaceBottom();
}
// DISTANCE BETWEEN 2 PTS
function LatLong(degLat, degLong) {
	this.lat = LatLong.llToRad(degLat);
	this.lon = LatLong.llToRad(degLong);
}    
LatLong.llToRad = function(brng) {
	if (!isNaN(brng)) return brng * Math.PI / 180; 
	brng = brng.replace(/[\s]*$/,'');               
	var dir = brng.slice(-1).toUpperCase();         
	if (!/[NSEW]/.test(dir)) return NaN;           
	brng = brng.slice(0,-1);                       
	var dms = brng.split(/[\s:,Â°Âºâ€²\'â€³\"]/);         
	switch (dms.length) {                           
	case 3:                                       
	 var deg = dms[0]/1 + dms[1]/60 + dms[2]/3600; break;
	case 2:                                       
	 var deg = dms[0]/1 + dms[1]/60; break;
	case 1:                                       
	 if (/[NS]/.test(dir)) brng = '0' + brng;   
	 var deg = brng.slice(0,3)/1 + brng.slice(3,5)/60 + brng.slice(5)/3600; break;
	default: return NaN;
	}
	if (/[WS]/.test(dir)) deg = -deg;               
	return deg * Math.PI / 180;                     
}
LatLong.distHaversine = function(p1, p2) {
	var R = 6371;
	var dLat  = p2.lat - p1.lat;
	var dLong = p2.lon - p1.lon;
	var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(p1.lat) * Math.cos(p2.lat) * Math.sin(dLong/2) * Math.sin(dLong/2);
	var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
	var d = R * c;
	return d;
}
/* FUNCTION BLUR & ON FOCUS */
function getBlur(field,txt) {
	if(document.getElementById(field).value == '') {
		document.getElementById(field).value = txt;	
	}
}
function getFocus(field) {
	document.getElementById(field).value = '';
}
