tfObjSort={init:function(){Array.prototype.objSort=function(){tfObjSort.setThings(this);var a=arguments;var x=tfObjSort;x.a=[];x.d=[];for(var i=0;i<a.length;i++){if(typeof a[i]=="string"){x.a.push(a[i]);x.d.push(1)};if(a[i]===-1){x.d[x.d.length-1]=-1}}
return this.sort(tfObjSort.sorter);};Array.prototype.strSort=function(){tfObjSort.setThings(this);return this.sort(tfObjSort.charSorter)}},sorter:function(x,y){var a=tfObjSort.a
var d=tfObjSort.d
var r=0
for(var i=0;i<a.length;i++){if(typeof x+typeof y!="objectobject"){return typeof x=="object"?-1:1};var m=x[a[i]];var n=y[a[i]];var t=typeof m+typeof n;if(t=="booleanboolean"){m*=-1;n*=-1}
else if(t.split("string").join("").split("number").join("")!=""){continue};r=m-n;if(isNaN(r)){r=tfObjSort.charSorter(m,n)};if(r!=0){return r*d[i]}}
return r},charSorter:function(x,y){if(tfObjSort.ignoreCase){x=x.toLowerCase();y=y.toLowerCase()};var s=tfObjSort.chars;if(!s){return x>y?1:x<y?-1:0};x=x.split("");y=y.split("");l=x.length>y.length?y.length:x.length;var p=0;for(var i=0;i<l;i++){p=s.indexOf(x[i])-s.indexOf(y[i]);if(p!=0){break};};if(p==0){p=x.length-y.length};return p},setThings:function(x){this.ignoreCase=x.sortIgnoreCase;var s=x.sortCharOrder;if(!s){this.chars=false;return true};if(!s.sort){s=s.split(",")};var a="";for(var i=1;i<1024;i++){a+=String.fromCharCode(i)};for(var i=0;i<s.length;i++){z=s[i].split("");var m=z[0];var n=z[1];var o="";if(z[2]=="_"){o=n+m}else{o=m+n};a=a.split(m).join("").split(n).join(o);};this.chars=a}};tfObjSort.init();
 
 
(function($){var a={},c="doTimeout",d=Array.prototype.slice;$[c]=function(){return b.apply(window,[0].concat(d.call(arguments)))};$.fn[c]=function(){var f=d.call(arguments),e=b.apply(this,[c+f[0]].concat(f));return typeof f[0]==="number"||typeof f[1]==="number"?this:e};function b(k){var l=this,g,i={},m=arguments,h=4,f=m[1],j=m[2],o=m[3];if(typeof f!=="string"){h--;f=k=0;j=m[1];o=m[2]}if(k){g=l.eq(0);g.data(k,i=g.data(k)||{})}else{if(f){i=a[f]||(a[f]={})}}i.id&&clearTimeout(i.id);delete i.id;function e(){if(k){g.removeData(k)}else{if(f){delete a[f]}}}function n(){i.id=setTimeout(function(){i.fn()},j)}if(o){i.fn=function(p){o.apply(l,d.call(m,h))&&!p?n():e()};n()}else{if(i.fn){j===undefined?e():i.fn(j===false);return true}else{e()}}}})(jQuery);

var map;
function initialize_map() {
  var myOptions = {
    zoom: 7,
    center: new google.maps.LatLng(52.09396621587106, 5.092463141784669),
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    navigationControl: true,
    scaleControl: true,
    mapTypeControl: false
  }
  map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
  directionsService = new google.maps.DirectionsService();
}


function activate_dealer_bnt(wb_url){
 $('a.dealer_link').click(function(){
 	dealerid = $(this).attr('rel');
 	lat = $('a.dealer_link[rel='+dealerid+']').data('position').latitude;
 	lng = $('a.dealer_link[rel='+dealerid+']').data('position').longitude;
 	get_dealer_info(wb_url, dealerid);
 	map.setCenter(new google.maps.LatLng(lat, lng));
 	map.setZoom(18);
 	return false;
 })
}

function setBtns(wb_url, dealer_info, afstand){
	dealer_id = dealer_info[0];
	dealer_name = dealer_info[1]
	lat = 	dealer_info[2];
	lng = dealer_info[3];
	$('#found_dealers').append('<li><a class="dealer_link" rel="'+dealer_id+'" href="javascript: void(0)">'+dealer_name+' ('+afstand+')</a></li>');
	$('a.dealer_link[rel='+dealer_id+']').data('position',{latitude:lat, longitude:lng});
}

function setMarkers(wb_url, dealer_info) {
	dealer_id = dealer_info[0];
	dealer_name = dealer_info[1]
	lat = 	dealer_info[2];
	lng = dealer_info[3];
	
	var myLatLng = new google.maps.LatLng(lat, lng);
	var marker = new google.maps.Marker({
	   id: dealer_id,
	   position: myLatLng,
	   map: map,
	   title: dealer_name
	});
			
	google.maps.event.addListener(marker, 'click', function() {
	map.setCenter(new google.maps.LatLng(this.position.Ra, this.position.Sa));
	map.setZoom(10);
	get_dealer_info(wb_url, this.id);
	});
}


function calcDistance(objenr, dealernr, begin, end_lat, end_lng) {
  if (!begin == '' && !end_lat == '' && !end_lng == ''){ 
	  var request = {
	    origin:begin, 
	    destination:new google.maps.LatLng(end_lat, end_lng),
	    travelMode: google.maps.DirectionsTravelMode.DRIVING
	  };
	  directionsService.route(request, function(result, status) {
	    if (status == google.maps.DirectionsStatus.OK) {
	  		if (result.trips[0].routes[0].distance != undefined){	 
	  			afstanden[objenr] = {afstand:result.trips[0].routes[0].distance['value'],afstandtxt:result.trips[0].routes[0].distance['text'],dealerid:dealernr};
	  		}
	    }
	  });
  }
}

function get_dealer_info(wb_url, dealerid){
	$('#map_output').load(wb_url+'/modules/dealerlocator/get_dealer_info.php', {'dealer_id': dealerid});
	$('html, body').animate({scrollTop:450}, 500);
}

