	//<![CDATA[


    var iconBlue = new GIcon(); 
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);

    var iconOrange = new GIcon(); 
    //iconOrange.image = 'http://labs.google.com/ridefinder/images/mm_20_orange.png';
    iconOrange.image = 'http://www.logosol.com/images/icons/google-map-markers/mm_20_orange.png';
    //iconOrange.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconOrange.iconSize = new GSize(12, 20);
    iconOrange.shadowSize = new GSize(22, 20);
    iconOrange.iconAnchor = new GPoint(6, 20);
    iconOrange.infoWindowAnchor = new GPoint(5, 1);

    var iconGreen = new GIcon(); 
    //iconGreen.image = 'http://labs.google.com/ridefinder/images/mm_20_green.png';
    iconGreen.image = 'http://www.logosol.com/images/icons/google-map-markers/mm_20_green.png';
    //iconGreen.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconGreen.iconSize = new GSize(12, 20);
    iconGreen.shadowSize = new GSize(22, 20);
    iconGreen.iconAnchor = new GPoint(6, 20);
    iconGreen.infoWindowAnchor = new GPoint(5, 1);

    var iconGray = new GIcon(); 
    iconGray.image = 'http://labs.google.com/ridefinder/images/mm_20_gray.png';
  	//iconGray.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconGray.iconSize = new GSize(12, 20);
    iconGray.shadowSize = new GSize(22, 20);
    iconGray.iconAnchor = new GPoint(6, 20);
    iconGray.infoWindowAnchor = new GPoint(5, 1);

    var iconHq = new GIcon(); 
    //iconHq.image = 'http://www.logosol.se/core/includes/apps/referencecustomers/images/hq-marker.png';
    iconHq.image = 'http://www.logosol.com/images/icons/google-map-markers/hq_64.png';
    //iconHq.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
	iconHq.iconSize = new GSize(50, 50);	
    iconHq.shadowSize = new GSize(22, 20);
    iconHq.iconAnchor = new GPoint(25, 50);
    iconHq.infoWindowAnchor = new GPoint(25, 1);


    var customIcons = [];
    customIcons["logosol"] = iconHq;
    customIcons["sawmills"] = iconOrange;
    customIcons["bandsaw-mills"] = iconOrange;	
    customIcons["planers"] = iconGreen;	
    customIcons["joinery-machines"] = iconGreen;	
    customIcons["industrial-machines"] = iconGray;	

	// global logged in variable.
	var access;

    if (GBrowserIsCompatible()) { 

	var map;
    var geo;
    var reasons=[];
	var the_Zoom;

	var the_Lat;
	var the_Lng;
	var the_marketkey;
	var the_category;
	var the_language_code;
	
	var gmarkers = [];
	var side_bar_html = "";
	var i = 0;
	
//	$('#map-filter-option input:checkbox #filter-'+the_category).click(updateFilterOptions); 

	function loadGoogleMap(var1, var2, var3, var4, var5, var6, var7 ){
		// logged in variable.	
		if(var6 == 'true')
			access = true;
		else
			access = false;
	
		the_Lat 			= var1;
		the_Lng 			= var2;
		the_marketkey 		= var4;
		the_category 		= var5;
		the_Zoom 			= var3;
		the_language_code 	= var7;
		
		// markerar checkboxen checkad berooende på vilken kategori användaren har som ingång.
		$('#filter-'+the_category+'').attr('checked', 'checked');
		
		// click eventet till checkboxarna
		//$('#map-filter-option input:radio').click(updateFilterOptions); 
	



		
		map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(the_Lat,the_Lng), the_Zoom);	  
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		
		// empty sidebar
		side_bar_html="";

		// ====== Create a Client Geocoder ======
		geo = new GClientGeocoder(); 
		
		// ====== Array for decoding the failure codes ======
		reasons[G_GEO_SUCCESS]            = "Success";
		reasons[G_GEO_MISSING_ADDRESS]    = "Missing Address: The address was either missing or had no value.";
		reasons[G_GEO_UNKNOWN_ADDRESS]    = "Unknown Address:  No corresponding geographic location could be found for the specified address.";
		reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Unavailable Address:  The geocode for the given address cannot be returned due to legal or contractual reasons.";
		reasons[G_GEO_BAD_KEY]            = "Bad Key: The API key is either invalid or does not match the domain for which it was given";
		reasons[G_GEO_TOO_MANY_QUERIES]   = "Too Many Queries: The daily geocoding quota for this site has been exceeded.";
		reasons[G_GEO_SERVER_ERROR]       = "Server error: The geocoding request could not be successfully processed.";
	  
		
		// lägger denna i urlen för att lura ie att den inte ska cacha.
		nocache = Math.random();


		var xmlUrl = "../../core/includes/apps/referencecustomers/phpsqlajax_genxml_us.php?marketkey="+ the_marketkey +"&category="+ the_category +"&language_code="+ the_language_code +"&nocache="+ nocache;
/*
if(access){
			var xmlUrl = "../../core/includes/apps/referencecustomers/phpsqlajax_genxml_us.php?marketkey="+ the_marketkey +"&category="+ the_category +"&language_code="+ the_language_code +"&nocache="+ nocache;
		}
		*/
		
		var linkid = "link"+1;
		GDownloadUrl(xmlUrl, function(data) {
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			
			if(markers.length == 0)
				side_bar_html = "<p class=\"emptyRecord\">Empty record. You need to add customers to this category.</p>";
				
			
			for (var i = 0; i < markers.length; i++) {

				var customer_id = markers[i].getAttribute("customer_id");
				var customer = markers[i].getAttribute("customer");
				var company = markers[i].getAttribute("company");
				var city = markers[i].getAttribute("city");
				var county = markers[i].getAttribute("county");
				var phone = markers[i].getAttribute("phone");
				var fax = markers[i].getAttribute("fax");
				var email = markers[i].getAttribute("email");
				var website = markers[i].getAttribute("website");
				var products = markers[i].getAttribute("products");
				var presentation = markers[i].getAttribute("presentation");
				var categoryKey = markers[i].getAttribute("categoryKey");
				var referenceCustomerId = markers[i].getAttribute("referenceCustomerId");
				var lang_products = markers[i].getAttribute("lang_products");
				var lang_presentation = markers[i].getAttribute("lang_presentation");
				var lang_website = markers[i].getAttribute("lang_website");
				var lang_email = markers[i].getAttribute("lang_email");
				var lang_fax = markers[i].getAttribute("lang_fax");
				var lang_phone = markers[i].getAttribute("lang_phone");
				var lang_company = markers[i].getAttribute("lang_company");
				var lang_customer = markers[i].getAttribute("lang_customer");
								
				
				linkid = "link"+i;

				if (customer == "")
					customer = "[customer name missing]";
				
				
				var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));

							
				var marker = createMarker(the_marketkey, referenceCustomerId, point, customer, company, city, phone, fax, email, website, products, presentation, categoryKey, lang_company, lang_products, lang_presentation, lang_website, lang_email, lang_fax, lang_phone, lang_company, lang_customer);
		
				gmarkers[i] = marker;
				side_bar_html += '<div class="sidebar-list-customer" id="'+linkid+'"><a href="javascript:myclick(' + i + ')" onmouseover="mymouseover(' + i + ')" onmouseout="mymouseout(' + i + ')">' + customer + '<span>(ID: '+customer_id+')</span><\/a></div>';
			
				map.addOverlay(marker);		

			}
			



			if(access == true){
			// put the assembled side_bar_html contents into the side_bar div
            document.getElementById("side_bar").innerHTML = side_bar_html;
			}

		});

    }



	var new_marker = "";
	var point;
	function place(lat,lng) {
		
//		marker.closeInfoWindow();
		
		if(new_marker != "")
			map.removeOverlay(new_marker);
			
				
		
			
		if(document.getElementById('admin_reference_customers').style.display != "block")
			document.getElementById('message_hints').innerHTML = "Click on the new marker to add some info about the customer";
			

		var point = new GLatLng(lat,lng);
		map.setCenter(point,the_Zoom); 
		
		new_marker = new GMarker(point, {draggable: true});
		map.addOverlay(new_marker);
	

		var latlng;
		var lat;
		var lng;
		var c_id;
				
		latlng = new_marker.getLatLng();
		lat = latlng.lat();
		lng = latlng.lng();
		document.getElementById('latlng').value = latlng;
		
		
		

		getAddress(new_marker);
		
		GEvent.addListener(new_marker, "mouseup", function() {		
				getAddress(new_marker);
		
		 });

		GEvent.addListener(new_marker, "drag", function() {
			latlng = new_marker.getLatLng();
			lat = latlng.lat();
			lng = latlng.lng();																 														   
				
			document.getElementById('latlng').value = latlng;				
		 });
		
		GEvent.addListener(new_marker, "click", function() {
			document.getElementById('admin_reference_customers').style.display = "block";
			document.getElementById('edit_box').style.display = "block";
			document.getElementById('message_hints').innerHTML = "The marker is draggable if you need to adjust the position. Complete the form and click Save Data";
		
			
			latlng = new_marker.getLatLng();
			lat = latlng.lat();
			lng = latlng.lng();
			document.getElementById('latlng').value = latlng;
			
			if(c_id == ""){
				document.getElementById('owner').value = "";
				document.getElementById('city').value = "";
				document.getElementById('company').value = "";
				document.getElementById('phone').value = "";
				document.getElementById('fax').value = "";
				document.getElementById('email').value = "";
				document.getElementById('website').value = "";
				document.getElementById('presentation').value = "";
				document.getElementById('products').value = "";
				document.getElementById('referenceCustomerId').value = "";
				document.getElementById('submit_delete_data').style.display = "none";

			}else{
				document.getElementById('submit_delete_data').style.display = "block";
			}
			

				
		});

	
		
		
	}
	
      // This function picks up the click and opens the corresponding info window
      function myclick(i) {
		GEvent.trigger(gmarkers[i], "click");

		  //gmarkers[i].openInfoWindowHtml("<div style='width: 200px'>"+htmls[i]+"</div>");
      //  gmarkers[i].openExtInfoWindow(map, "simple_example_window", htmls[i] );
        
      }
 
	  function mymouseover(i) {
        GEvent.trigger(gmarkers[i], "mouseover");
      }

	  function mymouseout(i) {
        GEvent.trigger(gmarkers[i], "mouseout");
      }
	  
	 function editCustomerForm(){
		$("#admin_reference_customers").show();
		
	}
	
												   
	
	

function getAddress(foo){
		var marker = foo;
		latlng = marker.getLatLng();
		if (latlng) {
        geo.getLocations(latlng, function(addresses) {
          if(addresses.Status.code != 200) {
            alert("reverse geocoder failed to find an address for " + latlng.toUrlValue());
          }
          else {
//			var result = addresses.Placemark[4];
//			if(!result)
				var result = addresses.Placemark[1];

			document.getElementById("geo_address").value = result.address;

          }
        });
	     }
}


	// ====== Geocoding ======
	function showAddress(foo) {

		var action = foo;
		map.closeInfoWindow();
		
		var search = document.getElementById("search").value;
//		var customer_action = document.getElementById("customer_action").value;
		
		if(action == "new"){
			var search = document.getElementById("search").value;
			document.getElementById('owner').value = "";
			document.getElementById('city').value = "";
			document.getElementById('company').value = "";
			document.getElementById('phone').value = "";
			document.getElementById('fax').value = "";
			document.getElementById('email').value = "";
			document.getElementById('website').value = "";
			document.getElementById('presentation').value = "";
			document.getElementById('referenceCustomerId').value = "";
			document.getElementById('submit_delete_data').style.display = "none";
			document.getElementById('reseller').checked = false;
		}else{
			var search = document.getElementById("geo_address").value;
		}

		// ====== Perform the Geocoding ======        
		geo.getLocations(search, function (result){
										   
										  

			if (result.Status.code == G_GEO_SUCCESS) {
				// ===== If there was more than one result, "ask did you mean" on them all =====

				if (result.Placemark.length > 1) { 

				document.getElementById("message").innerHTML = "Did you mean:";
				// Loop through the results
				for (var i=0; i<result.Placemark.length; i++) {
//				 alert(result.Placemark[i].address);
				var p = result.Placemark[i].Point.coordinates;
				document.getElementById("message").innerHTML += "<br>"+(i+1)+": <a href='javascript:place(" +p[1]+","+p[0]+")'>"+ result.Placemark[i].address+"<\/a>";
				}
				document.getElementById("message").innerHTML += "<br><br>";
				}
				// ===== If there was a single marker =====
				else {
				document.getElementById("message").innerHTML = "";
				var p = result.Placemark[0].Point.coordinates;
				place(p[1],p[0]);
				}
			}
			// ====== Decode the error status ======
			else {
				var reason="Code "+result.Status.code;
				if (reasons[result.Status.code]) {
					reason = reasons[result.Status.code]
				} 
				alert('Could not find "'+search+ '" ' + reason);
			}
		});
	}
}


	function createMarker(the_marketkey, referenceCustomerId, point, customer, company, city, phone, fax, email, website, products, presentation, categoryKey, lang_company, lang_products, lang_presentation, lang_website, lang_email, lang_fax, lang_phone, lang_company, lang_customer) {
	var marker;
    marker = new GMarker(point, {icon: customIcons[categoryKey]});
	
		var html;	  
		html = "<div style=\"width:300px;\">";
		html += '<h1 style="font-size: 17px";>' + customer + '</h1>';
		html += '<h2 style="font-size: 14px; padding-bottom: 10px;";>' + city + '</h2>';
		if(company !='')
			html += '<p><b>' + lang_company + ':</b> ' + company + '</p>';		
		html += '<p><b>' + lang_phone + ':</b> ' + phone + '</p>';

		if(website !='')
			html += '<p><b>' + lang_website + ':</b> <a href="' + website + '" target="_blank">' + website + '</a></p>';
		html += '<p><b>' + lang_products + ':</b> ' + products + '</p>';
		html += '<p><b>' + lang_presentation + ':</b> ' + presentation + '</p>';
		if(access == true){
			html += '<p style="line-height: 25px; font-weight: bold;"><a onclick="javascript:editCustomerForm()"href="#">Click here to edit this customer</a></p>';
		}
		
		html += '</div>';
		
	
	
	GEvent.addListener(marker, 'infowindowclose', function() {
	if(access == true){														   
		$("#admin_reference_customers").hide();
	}
	});
		
	GEvent.addListener(marker, 'click', function() {
		
		if(new_marker != "")
			map.removeOverlay(new_marker);
												   
        marker.openInfoWindowHtml(html);

		// if user is logged in

		if(access == true){
			latlng = marker.getLatLng();
			lat = latlng.lat();
			lng = latlng.lng();
			
			getAddress(marker);
			
			//document.getElementById('admin_reference_customers').style.display = "block";
			document.getElementById('edit_box').style.display = "block";
			document.getElementById('submit_delete_data').style.display = "block";
	
			document.getElementById('message_hints').innerHTML = "Type an adress above and Place Marker for new customer or click on a marker to edit a customer.";
			
			document.getElementById('owner').value = customer;
			document.getElementById('city').value = city;			
			document.getElementById('company').value = company;
			document.getElementById('phone').value = phone;
			document.getElementById('fax').value = fax;
			document.getElementById('email').value = email;
			document.getElementById('website').value = website;
			document.getElementById('presentation').value = presentation;
			document.getElementById("category_key").value = categoryKey;
			document.getElementById("referenceCustomerId").value = referenceCustomerId;
			document.getElementById("products").value = products;		
			document.getElementById('latlng').value = latlng;
			
			
			if(categoryKey == "logosol")
					document.getElementById('reseller').checked = true;
				else
					document.getElementById('reseller').checked = false;
			
			//if(document.getElementById('reseller').value = 'true';
			//document.getElementById('reseller').checked = true;
			
			
			


			
		}

		});
      return marker;
    }
	
	


// funktionen som sköter checkboxarnas värden.
function updateFilterOptions() {          
	 var allVals = []; 
	 $('#map-filter-option :checked').each(function() { 
	   allVals.push($(this).val()); 
	 }); 

	 loadGoogleMap(the_Lat, the_Lng, the_Zoom, the_marketkey, allVals, access, the_language_code);
 } 

   




function saveData(){
		var owner 				= encodeURI(document.getElementById("owner").value);
		var city	 			= encodeURI(document.getElementById("city").value);
		var company 			= encodeURI(document.getElementById("company").value);		
		var phone 				= encodeURI(document.getElementById("phone").value);
		var fax 				= encodeURI(document.getElementById("fax").value);
		var email 				= encodeURI(document.getElementById("email").value);
		var website 			= encodeURI(document.getElementById("website").value);
		var products 			= encodeURI(document.getElementById("products").value);
		var geo_code_address 	= encodeURI(document.getElementById("geo_address").value);
		var category_key 		= encodeURI(document.getElementById("category_key").value);
		var language_key 		= encodeURI(document.getElementById("language_key").value);
		var market_key 			= encodeURI(document.getElementById("market_key").value);
		var presentation 		= encodeURI(document.getElementById("presentation").value);
		var referenceCustomerId = encodeURI(document.getElementById("referenceCustomerId").value);
		if (document.getElementById("reseller").checked)
			var reseller 			= encodeURI(document.getElementById("reseller").value);
		else
			var reseller			= 'false';

		var google_map_data		= "37,-95,4,'US','sawmills'";
		
		var latlng = document.getElementById("latlng").value;
		
		
		var url  = "../../core/includes/apps/referencecustomers/phpsqlajax_insert_referencecustomer.php?"; 
		url += "customer=" + owner + "&";
		url += "city=" + city + "&";		
		url += "company=" + company + "&";
		url += "phone=" + phone + "&";
		url += "fax=" + fax + "&";
		url += "email=" + email + "&";
		url += "website=" + website + "&";
		url += "products=" + products + "&";
		url += "geo_code_address=" + geo_code_address + "&";
		url += "category_key=" + category_key + "&";
		url += "language_key=" + language_key + "&";
		url += "market_key=" + market_key + "&";
		url += "presentation=" + presentation + "&";
		url += "referenceCustomerId=" + referenceCustomerId + "&";
		url += "reseller=" + reseller + "&";		
		url += "google_map_data=" + google_map_data + "&";
		url += "latlng=" + latlng;

		
  	GDownloadUrl(url, function(data, responseCode) {
        if (responseCode == 200 && data.length <= 1) {
		document.getElementById("message").innerHTML = "Location added.";
		alert('data');

		//marker.closeInfoWindow();

        }
      });
	

		document.getElementById("admin_reference_customers").style.display = "none";
		document.getElementById("message").innerHTML = "";
		
		
		document.getElementById('search').value = "";
		document.getElementById('message_hints').innerHTML = "Type an adress above and Place Marker for new customer or click on a marker to edit a customer.";
		loadGoogleMap(the_Lat, the_Lng, the_Zoom, the_marketkey, the_category, 'true', the_language_code);
//		loadGoogleMap(the_Lat, the_Lng, the_Zoom, the_marketkey, the_category);
		
    }


function deleteData(){
		var referenceCustomerId = document.getElementById("referenceCustomerId").value;
		var url  = "../../core/includes/apps/referencecustomers/phpsqlajax_insert_referencecustomer.php?action=delete&"; 
		url += "referenceCustomerId=" + referenceCustomerId;
		
	  	GDownloadUrl(url, function(data, responseCode) {
   		});

		document.getElementById("admin_reference_customers").style.display = "none";
		document.getElementById('search').value = "";
		document.getElementById('message_hints').innerHTML = "Type an adress above and Place Marker for new customer or click on a marker to edit a customer.";
		loadGoogleMap(the_Lat, the_Lng, the_Zoom, the_marketkey, the_category, 'true', the_language_code);
	//	loadGoogleMap(the_Lat, the_Lng, the_Zoom, the_marketkey, the_category);
    }
	
function clearForm(){
			if(new_marker != "")
				map.removeOverlay(new_marker);
				
			//map.closeInfoWindow();
			loadGoogleMap(the_Lat, the_Lng, the_Zoom, the_marketkey, the_category, 'true', the_language_code);
			document.getElementById("edit_box").style.display = "none";
			document.getElementById("admin_reference_customers").style.display = "none";
			document.getElementById('message').innerHTML = "";			
			document.getElementById('message_hints').innerHTML = "Type an adress above and Place Marker for new customer or click on a marker to edit a customer.";			
			document.getElementById('owner').value = "";
			document.getElementById('city').value = "";			
			document.getElementById('company').value = "";
			document.getElementById('geo_address').value = "";
			document.getElementById('products').value = "";			
			document.getElementById('phone').value = "";
			document.getElementById('fax').value = "";
			document.getElementById('email').value = "";
			document.getElementById('website').value = "";
			document.getElementById('presentation').value = "";
			document.getElementById('referenceCustomerId').value = "";
			document.getElementById('latlng').value = "";
			document.getElementById('search').value = "";


}	



//]]>

