function inlineAlert(text) {
		$("dealer_section_content").setOpacity(0.4);
		$('alert_Inline').show();
		var table = document.createElement("div");
		table.className="alert_Inline_box";
		var table_text = document.createElement("div");
		table_text.className = "alert_Inline_text";
		table_text.appendChild(document.createTextNode(text));
		var table_button = document.createElement("input");
		table_button.type = "button";
		table_button.value = "OK";
		table_button.className = "alert_Inline_button";
		table_button.onclick = new Function("$('alert_Inline').hide(); $('dealer_section_content').setOpacity(1);");
		table.appendChild(table_text);
		table.appendChild(table_button);
		$("alert_Inline").update(table);
		$("alert_Inline").className = "alert_Inline";
                }   
	 
	function resGMap() {
		if (($('left-content').className=='')&&($('topcontent').className=='hidden')) {
			$('left-content').className='hidden';
			$('map_canvas').className='map_size_start';
			$('map-start').className='map-start_large';
			$('right-content').className='right-content_large';
			map.checkResize();
			$('resMapBut').innerHTML=minimase_map_text;
			$('enlarge').className='en_long';
			$('dealers').className='hidden';
		} 
		else if (($('topcontent').className=='')&&($('dirTable').className=='')) {
			$('driving_dir').className='hidden';
			$('dirTable').className='hidden';
			$('map_canvas').className='map_size_start';
			$('map-start').className='map-start_large';
			$('right-content').className='right-content_large';
			map.checkResize();
			$('resMapBut').innerHTML=minimase_map_text;
			$('enlarge').className='en_long';
			$('dealers').className='';
		}
		else if (($('topcontent').className=='')&&($('dirTable').className=='hidden')) {
			$('driving_dir').className='';
			$('dirTable').className='';
			$('map_canvas').className='map_size_small';
			$('map-start').className='map-start_small';
			$('right-content').className='right-content_small';
			map.checkResize();
			$('resMapBut').innerHTML=enlarge_map_text;
			$('enlarge').className='en_not_long';
		}
		else if (($('topcontent').className=='hidden')&&($('left-content').className=='hidden')) {
			$('left-content').className='';
			$('dealers').className='';
			$('map_canvas').className='map_size_small';
			$('map-start').className='map-start_small';
			$('right-content').className='right-content_small';
			map.checkResize();
			$('resMapBut').innerHTML=enlarge_map_text;
			$('enlarge').className='en_not_long';
		}
	}

	function nextPageClick() {
		curr_page_no += 1;
		printResPage(curr_page_no);
	}

	function prevPageClick() {
		curr_page_no -= 1;
		printResPage(curr_page_no);
	}

	function printResPage(num) {
		map.clearOverlays();
		redrawLocation();
		var over_check = 0;
		start_points_mark = 1;
		curr_page_no = num + 0;
		if (curr_page_no > res_count_pages) {
			over_check = 1;res_count_pages++;
		}
		while ($("pages_navigation").hasChildNodes()) {
			$("pages_navigation").removeChild($("pages_navigation").firstChild);
		}
		var prev_el = document.createElement("a");
		prev_el.className='active';
		prev_el.id='prev_a_link';
		prev_el.innerHTML='';
		prev_el.href='#';
		$("pages_navigation").appendChild(prev_el);

		var points_el_beg = document.createElement("a");
		points_el_beg.className='active';
		points_el_beg.id='points_begin_not_link';
		points_el_beg.innerHTML='';
		points_el_beg.href='#';
		$("pages_navigation").appendChild(points_el_beg);

		for (var i = 1; i <=  res_count_pages; i++ ) {
			if (( (curr_page_no - i < 3)&&(curr_page_no - i > (-3)) )
			||( (curr_page_no - i == 3)&&( (res_count_pages - curr_page_no == 1)||(res_count_pages - curr_page_no == 0) ) )
			||( (curr_page_no - i == 4)&&(res_count_pages - curr_page_no == 0) )
			||( (curr_page_no  == 1)&&( (i == 4)||(i == 5) ) )
			||( (curr_page_no  == 2)&&(i == 5) )) {
				if (i == 1) {start_points_mark = 0;}
				var temp_page_el = document.createElement("a");
				temp_page_el.innerHTML=i;
				temp_page_el.href='#';
				if (i != curr_page_no) {
					temp_page_el.className='';
					temp_page_el.onclick = new Function("printResPage("+i+");");
				} else {
					temp_page_el.className='active';
					temp_page_el.onclick = new Function("");
				}
				$("pages_navigation").appendChild(temp_page_el);
                                                }
		}
		var points_el = document.createElement("a");
		points_el.className='active';
		points_el.id='points_not_link';
		points_el.innerHTML='';
		points_el.href='#';
		$("pages_navigation").appendChild(points_el);
	
		var next_el = document.createElement("a");
		next_el.className='active';
		next_el.id='next_a_link';
		next_el.innerHTML='';
		next_el.href='#';
		$("pages_navigation").appendChild(next_el);

		if (first_relocate == 1) {first_relocate = 0; return;}
		if (over_check == 1) {so.getMoreDealers(); return;}

		while ($('dealerlist').hasChildNodes()) {
			$('dealerlist').removeChild($('dealerlist').firstChild);
		}
    		while ($('dealers').hasChildNodes()) {
			$('dealers').removeChild($('dealers').firstChild);
		}
		var pDealer = document.createElement("p");
		var fromAddress =  $F('fromAddress');
		if (dealers.size() <= dealers_portion*res_count_pages) {
			pDealer.appendChild(document.createTextNode((dealers.size() - 0) + " " + dealers_found_text + " " + fromAddress ));
		} else {
			pDealer.appendChild(document.createTextNode((dealers.size() - 1) + " " + dealers_found_text + " " + fromAddress ));
		}
		$("dealers").appendChild(pDealer);

		var bounds = new GLatLngBounds();
		evenuneven=0;
		dealerletter='A';
		dealeriterat=0;

		if ((dealers.size() <= dealers_portion*res_count_pages)&&(curr_page_no == res_count_pages)) {
			$("next_a_link").innerHTML = "";
			$("next_a_link").className = "active";
			$("next_a_link").onclick = new Function("");
			$("points_not_link").innerHTML = "";
			pages_end_reach = 1;
			total_pages = res_count_pages;

			temp_page_count = dealers.size();
		} else {
			$("next_a_link").innerHTML = next_text + " >";
			$("next_a_link").className = "";
			$("next_a_link").onclick = new Function("nextPageClick();");
			if ((pages_end_reach == 1)&&(total_pages - curr_page_no < 3)) {
				$("points_not_link").innerHTML = "";
			} else {
				$("points_not_link").innerHTML = " ... ";
			}
			temp_page_count = curr_page_no * dealers_portion;
		}
		if (curr_page_no == 1) {
			$("prev_a_link").innerHTML = "";
			$("prev_a_link").className = "active";
			$("prev_a_link").onclick = new Function("");
		} else {
			$("prev_a_link").innerHTML = "&lt; " + prev_text;
			$("prev_a_link").className = "";
			$("prev_a_link").onclick = new Function("prevPageClick();");
                                                if (start_points_mark == 1) {$("points_begin_not_link").innerHTML = " ... ";}
		}
		if ($("sort_by_name").className == "activeDistance") {sortingNDC("name", 0);}
		if ($("sort_by_dist").className == "activeDistance") {sortingNDC("dist", 0);}
		if ($("sort_by_city").className == "activeDistance") {sortingNDC("city", 0);}
		for (i = (curr_page_no - 1) * dealers_portion; i < temp_page_count ; i++ ) {
			dealeriterat++;
			so.dealerList.set(dealers[i].KUNNR,dealers[i]);
			so.createDealerEntry(dealers[i], bounds);
		}
//		if($('dealerlist').offsetHeight>= 470){
//			$('left_side').setAttribute("style","");
//		}
//		var tr = document.createElement("tr");
//		var td = document.createElement("td");
//		var input = document.createElement("input");
//		input.className = "Button";
//		input.type = "submit";
//		input.value = translations.getMoreDealers;
//		input.onclick = new Function("so.getMoreDealers();");
//		td.appendChild(input);
//		tr.appendChild(td);
//		$('dealerlist').insert(tr);
		map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)); 
		return;
	}

	function redrawLocation() {
		var point = new GLatLng(dealer_loc_y,dealer_loc_x);
		var marker = new GMarker(point);
		map.addOverlay(marker);
	}
                
	function sortingNDC(type, goToFirstPage)
	{
		var i = 0;
		var j = 0;
		var tempObj = new Object();
		$("sort_by_name").className = "";
		$("sort_by_dist").className = "";
		$("sort_by_city").className = ""; 
		if (type == "dist") {
			$("sort_by_dist").className = "activeDistance";
			$("sorting_dist").className = "sorting_active";
			$('sort_dist_left').show();
			$('sort_dist_right').show();
			$("sorting_name").className = "sorting";
			$('sort_name_left').hide();
			$('sort_name_right').hide();
			$("sorting_city").className = "sorting";
			$('sort_city_left').hide();
			$('sort_city_right').hide();
			for (i = 0; i < dealers.size(); i++ ) {      
				dealers[i] = dealers_sort_dist[i];
			}                                               
		} else if (type == "name") {
			$("sort_by_name").className = "activeDistance";
			$("sorting_name").className = "sorting_active";
			$('sort_name_left').show();
			$('sort_name_right').show();
			$("sorting_dist").className = "sorting";
			$('sort_dist_left').hide();
			$('sort_dist_right').hide();
			$("sorting_city").className = "sorting";
			$('sort_city_left').hide();
			$('sort_city_right').hide();
			for (i = 0; i < dealers.size(); i++ ) {
				for (j = i+1; j < dealers.size(); j++ ) {
					if (dealers[i].NAME1 > dealers[j].NAME1) {
						tempObj = dealers[i];
						dealers[i] = dealers[j];
						dealers[j] = tempObj;
					}
				}
			}
		} else if (type == "city") {
			$("sort_by_city").className = "activeDistance";
			$("sorting_city").className = "sorting_active";
			$('sort_city_left').show();
			$('sort_city_right').show();
			$("sorting_name").className = "sorting";
			$('sort_name_left').hide();
			$('sort_name_right').hide();
			$("sorting_dist").className = "sorting";
			$('sort_dist_left').hide();
			$('sort_dist_right').hide();
			for (i = 0; i < dealers.size(); i++ ) {
				for (j = i+1; j < dealers.size(); j++ ) {
					if (dealers[i].ORT01 > dealers[j].ORT01) {
						tempObj = dealers[i];
						dealers[i] = dealers[j];
						dealers[j] = tempObj;
					}
				}
			}
		}
		if (goToFirstPage == 1) {printResPage(1);}
		return;
	}

	function getChoiceOfLocation(i_nom) {
		$('slidedown_demo').show(); 
		so.sourceLocation = locations[i_nom]; 
		dealer_loc_x = (locations[i_nom]).x; 
		dealer_loc_y = (locations[i_nom]).y;
		$('multipleLocations').className = 'hidden';
		so.getDealers();
		return;
	}

	function getValueSelected(number) {
		numberOfDealers = number.selectedIndex;
		return;
	}	
		
	function DealerLocator() {
//		var translations 				= {start:start_message_text,backToList:back_text,error1:error_message_text,getMoreDealers:"more dealers message"};
    		var translations 				= {start:start_message_text,backToList:back_text,error1:error_message_text};
		var url 					= url_text;
		var sourceString;				// Search String user entered
		var sourceLocation;				// Source Location resolved by webservice
		var sourceLocations;				// Source Locations resolved by webservice in case mulitple matches for sourceString were found
		var flagChanged = 0;
		var dealers_portion = num_deal_comp_number; //max dealer on page
		
		if (typeof(_dealerLocator_prototype_called) == 'undefined') {
			_dealerlocator_prototype_called 			= true;
			DealerLocator.prototype.searchDealers		= searchDealers;
			DealerLocator.prototype.getDealers			= getDealers;
			DealerLocator.prototype.getMoreDealers		= getMoreDealers;
			DealerLocator.prototype.createDealerEntry 	= createDealerEntry;
			DealerLocator.prototype.setDirections	 	= setDirections;
			DealerLocator.prototype.createRouting	 	= createRouting;
			DealerLocator.prototype.backToList	 		= backToList;
			DealerLocator.prototype.showDetails	 		= showDetails;
			DealerLocator.prototype.filterSearchResultPGR	= filterSearchResultPGR;
			DealerLocator.prototype.filterSearchResultSGR	= filterSearchResultSGR;
			DealerLocator.prototype.filterSearchResultMHK	= filterSearchResultMHK;
			DealerLocator.prototype.multipleLocations 	= multipleLocations;
			DealerLocator.prototype.checkPG			= checkPG ;
			DealerLocator.prototype.dealerList			= new Hash();
		}
		
		function checkPG(value) {
			for (var i = 0; i < availableProdutGroup.length; i++)
				if (availableProdutGroup[i] == value)
        				return i;
    		return -1;
		}

		function searchDealers(form) {
			$("slidedown_demo").show();
			$("dealer_section_content").setOpacity(0.4);
			dealers_portion = parseInt($('num_of_res').options[$("num_of_res").selectedIndex].value);
			numberOfDealers = dealers_portion;
			temp_page_count = 0;
			curr_page_no = 1;
			res_count_pages = 1;
			pages_end_reach = 0;
			total_pages = 0;
			first_relocate = 1;
			if (check_searched == 0) 
			{
				selectedProdutGroup = "";
				selectedServiceGroup ="";
				selectedServiceGroupMHK ="";
			}
			check_searched = 0;
			var keys = so.dealerList.keys();
			for (  i=0 ; i < keys.size() ; i++){
				var key = keys[i];
				so.dealerList.unset(keys[i]);
			}
    			while ($('topcontent').hasChildNodes()) {
				$('topcontent').removeChild($('topcontent').firstChild);
			}

			if (form.from.value==""){
				inlineAlert(translations.start);
				document.getElementsByTagName("body")[0].style.cursor = "";
				return;
			}
			this.sourceString = form.from.value;
			global_location = form.from.value;
			this.pgr=form.pgr;
			
			var params = new Object();
			var te = unescape( this.sourceString);
			var te2 = encodeURI( this.sourceString);
			params.address =te
		
			new Ajax.Request(url + "location.jsp",
			{
				method:'get',
				parameters:params,
				onSuccess: function(transport){
					map.clearOverlays();
					source_Locations = (eval( "(" + transport.responseText + ")" )).locations;
					if (source_Locations.size() < 1) {
						initNullLocations();
						inlineAlert(error_location_text);
					} else if (source_Locations.size() > 1) {
						so.sourceLocations = source_Locations;
						so.multipleLocations();
					} else {                                                                                                
						so.sourceLocation = source_Locations[0];
						////var point = new GLatLng(so.sourceLocation.y,so.sourceLocation.x);
						////var marker = new GMarker(point);
						////map.addOverlay(marker);
						dealer_loc_x = so.sourceLocation.x;
						dealer_loc_y = so.sourceLocation.y;
						so.getDealers();
					}
					return;
				},
				onFailure: function(){ 
			    		inlineAlert(translations.error1); 
			    	}
			}
			);
			return;

    		}
		
		function multipleLocations() {
			$("slidedown_demo").hide();			
			locations = source_Locations;
			var table = document.createElement("div");
			table.className="multipleLocations_table";
			var td_close = document.createElement("div");
			td_close.className="error_location_close";
			td_close.appendChild(document.createTextNode(close_text));
			td_close.onclick = new Function("$('multipleLocations').hide(); $('dealer_section_content').setOpacity(1); $('fromAddress').value='"+start_message_text+"';");
			table.appendChild(td_close);
			var td_head = document.createElement("div");
			td_head.className = "multipleHits_header";
			td_head.appendChild(document.createTextNode(text_multiple_result_text));
			table.appendChild(td_head);
			for (i = 0; i < locations.size(); i++) {
				var td = document.createElement("div");
				td.className = "multipleHits_odd";
				td.id = i;
				if (i % 2 == 0) {
					td.className = "multipleHits_even";
				}
				td.appendChild(document.createTextNode(locations[i].address));
				td.onclick = new Function("getChoiceOfLocation("+i+");");
				table.appendChild(td);
			}
			$("multipleLocations").update(table);
			$("multipleLocations").className = "multipleLocations";
		}

		function getMoreDealers() {
			$("slidedown_demo").show();
		  	$("dealer_section_content").setOpacity(0.4);  
			numberOfDealers += dealers_portion;
			this.getDealers();
		}

		function getDealers(){
			var i;
  			var params = new Object();
			params.x = dealer_loc_x;
			params.y = dealer_loc_y;
			params.pgr = selectedProdutGroup;
			params.sgr = selectedServiceGroup;
			params.mhk = selectedServiceGroupMHK;
			params.numberOfDealers =numberOfDealers+1;

			var D_point = new GLatLng(dealer_loc_y,dealer_loc_x);
			var D_marker = new GMarker(D_point);
			map.addOverlay(D_marker);

   			new Ajax.Request(url+ "dealers.jsp",
		  	{
		    		method:'get',
		    		parameters:params,
		    		onSuccess: function(transport){
			    		dealers = eval( "(" + transport.responseText + ")" ).dealers;
					for (i = 0; i < dealers.size(); i++ ) {      
						dealers_sort_dist[i] = new Object();
						dealers_sort_dist[i] = dealers[i];
					}
					if (dealers.size()<1) {
						initNullLocations();
						inlineAlert(error_dealers_text);
						return;
					}
			    		while ($('dealerlist').hasChildNodes()) {
						$('dealerlist').removeChild($('dealerlist').firstChild);
  					}
					if (first_relocate == 1) {printResPage(1);}

    					while ($('dealers').hasChildNodes()) {
						$('dealers').removeChild($('dealers').firstChild);
					}
					var pDealer = document.createElement("p");
					var fromAddress =  $('fromAddress').value;
					if (dealers.size() <= dealers_portion*res_count_pages) {
						pDealer.appendChild(document.createTextNode((dealers.size() - 0) + " " + dealers_found_text + " " + fromAddress ));
					} else {
						pDealer.appendChild(document.createTextNode((dealers.size() - 1) + " " + dealers_found_text + " " + fromAddress ));
					}
					$("dealers").appendChild(pDealer);

					var bounds = new GLatLngBounds();
					evenuneven=0;
					dealerletter='A';
					dealeriterat=0;

					if ((dealers.size() <= dealers_portion*res_count_pages)&&(curr_page_no == res_count_pages)) {
						$("next_a_link").innerHTML = "";
						$("next_a_link").className = "active";
						$("next_a_link").onclick = new Function("");
						$("points_not_link").innerHTML = "";
						pages_end_reach = 1;
						total_pages = res_count_pages;

						temp_page_count = dealers.size();
					} else {
						$("next_a_link").innerHTML = next_text + " >";
						$("next_a_link").className = "";
						$("next_a_link").onclick = new Function("nextPageClick();");
						if ((pages_end_reach == 1)&&(total_pages - curr_page_no < 5)) {
							$("points_not_link").innerHTML = "";
						} else {
							$("points_not_link").innerHTML = " ... ";
						}
		
						temp_page_count = curr_page_no * dealers_portion;
					}
					if (curr_page_no == 1) {
						$("prev_a_link").innerHTML = "";
						$("prev_a_link").className = "active";
						$("prev_a_link").onclick = new Function("");
					} else {
						$("prev_a_link").innerHTML = "&lt; " + prev_text;
						$("prev_a_link").className = "";
						$("prev_a_link").onclick = new Function("prevPageClick();");
						if (start_points_mark == 1) {$("points_begin_not_link").innerHTML = " ... ";}
					}
					if ($("sort_by_name").className == "activeDistance") {sortingNDC("name", 0);}
					if ($("sort_by_dist").className == "activeDistance") {sortingNDC("dist", 0);}
					if ($("sort_by_city").className == "activeDistance") {sortingNDC("city", 0);}
					for (i = (curr_page_no - 1) * dealers_portion; i < temp_page_count ; i++ ) {
						dealeriterat++;
						so.dealerList.set(dealers[i].KUNNR,dealers[i]);
						so.createDealerEntry(dealers[i], bounds);
					}

//					if($('dealerlist').offsetHeight>= 470){
//						$('left_side').setAttribute("style","");
//					}
//					var tr = document.createElement("tr");
//					var td = document.createElement("td");
//					var input = document.createElement("input");
//					input.className = "Button";
//					input.type = "submit";
//					input.value = translations.getMoreDealers;
//					input.onclick = new Function("so.getMoreDealers();");
//					td.appendChild(input);
//					tr.appendChild(td);
//					$('dealerlist').insert(tr);

					$('map-start').className='map-start_small';
					$('right-content').className='right-content_small';
					$('dirTable').className='hidden';
					$('topcontent').className='hidden';
					$('left-content').className='';
		    			$('map_canvas').className='map_size_small';
					$('dealers').className='';
					$('resMapBut').innerHTML=enlarge_map_text;
					$('enlarge').className='en_not_long';
					map.checkResize();

					map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)); 
    					document.getElementsByTagName("body")[0].style.cursor = "";
					return;
			    	},
		    		onFailure: function(){ 
		    			inlineAlert(translations.error1);
					$("slidedown_demo").hide();
		  			$("dealer_section_content").setOpacity(1);  
				},
	    			onComplete: function(){
					$("slidedown_demo").hide();
		  			$("dealer_section_content").setOpacity(1);  		
				}
		  	}
			);
			return; 
   		}
				
		function createDealerEntry(dealer, bounds) {
   			// MapEntry
			var point = new GLatLng(dealer.y,dealer.x);
			bounds.extend(point);

			var divTab1 = document.createElement("div");
			divTab1.className='mapInfo';
			var name1 = document.createElement("div");
			name1.className='name';
			name1.appendChild(document.createTextNode(dealer.NAME1));
			divTab1.appendChild(name1);

			var divInf = document.createElement("div");
			divInf.className ='pr-groups';
			divInf.appendChild(document.createTextNode(dealer.STRAS +" " +dealer.HOUSE_NUM1));
			divInf.appendChild(document.createElement("br"));
			divInf.appendChild(document.createTextNode(dealer.LAND1+" "+ dealer.PSTLZ+" "+ dealer.ORT01+" "+ dealer.ORT02 ));
			divInf.appendChild(document.createElement("br"));
			if (dealer.TELF1 + "" != "") {
				divInf.appendChild(document.createTextNode(tel_text + ".:  " + dealer.TELF1));
				divInf.appendChild(document.createElement("br"));
			}

			divInf.appendChild(document.createElement("br"));
			divTab1.appendChild(divInf);

			var divGroups = document.createElement("div");
			divGroups.className ='pr-groups';
			var pgrs = dealer.PGR.split(",");
			for (j=0; j<pgrs.length; j++){
				var icon = document.createElement("div");
				icon.className = 'icon_' + pgrs[j];
				divGroups.appendChild(icon);
			}
			divTab1.appendChild(divGroups);

			var divRoute = document.createElement("div");
			divRoute.className='details-link';

			var aRoute = document.createElement("a");
			aRoute.href = '#';	
			aRoute.appendChild(document.createTextNode(details_text));
			aRoute.onclick=new Function('so.createRouting("'+dealer.KUNNR+'");');
			divRoute.appendChild(aRoute);
			divTab1.appendChild(divRoute);

//			var divTab2 = document.createElement("div");
//			divTab2.className='mapInfo';
//			divTab2.appendChild(document.createTextNode("dieser Text ist noch zu definieren"));

			var customIcon = new GIcon(G_DEFAULT_ICON);
		 	customIcon.image =serverPath_text + "/system/img/marker_" + dealerletter + ".gif";
		 	customIcon.shadow =serverPath_text + "/system/img/marker_" + dealerletter + ".gif";
		 	customIcon.imageMap = [0,0,0,icon_map_height_number,icon_map_width_text,icon_map_height_number,icon_map_width_text,0];
		 	customIcon.iconAnchor = new GPoint(13,15);
		 	customIcon.iconSize = new GSize(icon_map_width_text,icon_map_height_number);
		 	customIcon.shadowSize = new GSize(icon_map_width_text,icon_map_height_number);
		 	var marker = new GMarker(point,{ icon:customIcon});
			GEvent.addListener(marker, "click", function() {
//				marker.openInfoWindowTabs([new GInfoWindowTab('Infos',divTab1), new GInfoWindowTab('sonstiges',divTab2)]);
				marker.openInfoWindowTabs([new GInfoWindowTab('Info',divTab1)]);
			});
									   		
   			//Sidebar entry
			var tr = document.createElement("tr");
			var td = document.createElement("td");
			if (evenuneven==0) {td.className ='even'; evenuneven=1;}
			else {td.className ='uneven'; evenuneven=0;}
			tr.appendChild(td);
			map.addOverlay(marker);
			var div = document.createElement("div");
			if ( document.addEventListener ) {
				div.addEventListener("click",function() {
					marker.openInfoWindowTabs([new GInfoWindowTab('Info',divTab1)]);
				},false);
			} else if ( document.attachEvent ) {
				div.attachEvent("onclick",function() {
					marker.openInfoWindowTabs([new GInfoWindowTab('Info',divTab1)]);
				});
			}

			var divArrow = document.createElement("div");
			divArrow.className ='arrow-list';
			divArrow.appendChild(document.createTextNode(dealerletter));
			telephletters[0][dealeriterat]=dealerletter;
			telephletters[1][dealeriterat]=dealer.TELF1;
			dealerletter=String.fromCharCode(dealerletter.charCodeAt(0)+1);                                                
			div.appendChild(divArrow);

			var divName = document.createElement("div");
			divName.className ='name';
			divName.appendChild(document.createTextNode(dealer.NAME1));
			div.appendChild(divName);

			var divAddress = document.createElement("div");
			divAddress.className ='address';
			divAddress.appendChild(document.createTextNode(dealer.STRAS + " " +dealer.HOUSE_NUM1));
			divAddress.appendChild(document.createElement("br"));
			divAddress.appendChild(document.createTextNode(dealer.LAND1 + " " + dealer.PSTLZ + " " + dealer.ORT01 + " " + dealer.ORT02));
			div.appendChild(divAddress);

			if (dealer.TELF1 + "" != "") {
				var divPhone = document.createElement("div");
				divPhone.className ='phone';
				divPhone.appendChild(document.createTextNode(tel_text + ":  " + dealer.TELF1));
				div.appendChild(divPhone);
			}
                                                
			var divClear = document.createElement("div");
			divClear.style.clear = 'both'; 
			div.appendChild(divClear);

			var divGroups = document.createElement("div");
			divGroups.className ='pr-groups';
			var pgrs = dealer.PGR.split(",");
			for (j=0; j<pgrs.length; j++){
				if (this.checkPG(pgrs[j])!=-1){
					var icon = document.createElement("div");
					icon.className = 'icon_' + pgrs[j];
					divGroups.appendChild(icon);
				}
			}
			div.appendChild(divGroups);
			td.appendChild(div);

			var divLink = document.createElement("div");
			divLink.className ='details-link';

			var linkInfo = document.createElement("a");
			linkInfo.href = '#';
			linkInfo.onclick=new Function('so.createRouting("'+dealer.KUNNR+'");');
			linkInfo.appendChild(document.createTextNode(details_text));
			divLink.appendChild(linkInfo);

			td.appendChild(divLink);
			tr.appendChild(td);
			   	  
			$("dealerlist").appendChild(tr);

			map.checkResize();
	   	    	map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)); 
			return;
   		}
		
		function showDetails(KUNNR){
			var dealer = window.so.dealerList.get(KUNNR);
			GEvent.trigger(dealer.marker, "click"); 
			map.setCenter(new GLatLng(window.so.dealerList.get(KUNNR).y,window.so.dealerList.get(KUNNR).x), 16);
		}
		
		function createRouting(KUNNR){

			while ($('topcontent').hasChildNodes()) {
				$('topcontent').removeChild($('topcontent').firstChild);
			}
    			while ($('driving_dir').hasChildNodes()) {
				$('driving_dir').removeChild($('driving_dir').firstChild);
			}

   			var dealer = window.so.dealerList.get(KUNNR);

			var divBtn = document.createElement("div");
			divBtn.className='overview-link';

			var btn = document.createElement("a");
			btn.href = '#';
			btn.appendChild(document.createTextNode(back_text));
			btn.onclick=new Function('so.backToList();');
			divBtn.appendChild(btn);

			var divDt = document.createElement("div");
			divDt.className='dealer-details';

			var divArrow = document.createElement("div");
			divArrow.className ='arrow-list';
			for (j=0 ; j <= dealeriterat ; j++ ) {
				if (telephletters[1][j]==dealer.TELF1){
					divArrow.appendChild(document.createTextNode(telephletters[0][j]));
					break;
				}
			}
			divDt.appendChild(divArrow);

			var divName = document.createElement("div");
			divName.className ='name';
			divName.appendChild(document.createTextNode(dealer.NAME1));
			divDt.appendChild(divName);

			var divPhoto = document.createElement("div");
			divPhoto.className ='dealer-photo';

//			var imgInfo = document.createElement("img");
//			imgInfo.src = '(dealer.IMAGE)';
//			divPhoto.appendChild(imgInfo);

			divDt.appendChild(divPhoto);

			var divDt2 = document.createElement("div");
			divDt2.className ='dealer-details-2';
			divDt2.appendChild(document.createTextNode(dealer.STRAS + " " +dealer.HOUSE_NUM1));
			divDt2.appendChild(document.createElement("br"));
			divDt2.appendChild(document.createTextNode(dealer.LAND1 + " " + dealer.PSTLZ + " " + dealer.ORT01 + " " + dealer.ORT02));
			divDt2.appendChild(document.createElement("br"));
			divDt2.appendChild(document.createElement("br"));

			if (dealer.TELF1 + "" != "") {
				var bTel = document.createElement("b");
				bTel.appendChild(document.createTextNode(tel_text + ":  "));
				divDt2.appendChild(bTel);
				divDt2.appendChild(document.createTextNode(dealer.TELF1));
				divDt2.appendChild(document.createElement("br"));
			}
			if (dealer.TELF1 + "" != "") {
				var bFax = document.createElement("b");
				bFax.appendChild(document.createTextNode(fax_text + ":  "));
				divDt2.appendChild(bFax);
				divDt2.appendChild(document.createTextNode(dealer.TELFX));
				divDt2.appendChild(document.createElement("br"));
			}
			divDt2.appendChild(document.createTextNode(dealer.EMAIL));
			divDt2.appendChild(document.createElement("br"));
			divDt2.appendChild(document.createTextNode(dealer.URL));
//			if ((dealer.HOURS1 + "" != "")&&(dealer.HOURS2 + "" != "")) {
//				divDt2.appendChild(document.createElement("br"));
//				divDt2.appendChild(document.createElement("br"));
//				var bHours = document.createElement("b");
//				bHours.appendChild(document.createTextNode(hours_text + ":"));
//				divDt2.appendChild(bHours);
//				divDt2.appendChild(document.createElement("br"));
//				divDt2.appendChild(document.createTextNode(dealer.HOURS1));
//				divDt2.appendChild(document.createElement("br"));
//				divDt2.appendChild(document.createTextNode(dealer.HOURS2));
//			}


			divDt.appendChild(divDt2);

			var divGr = document.createElement("div");
			divGr.className ='dealer-groups';

			var divGrt = document.createElement("b");
			divGrt.appendChild(document.createTextNode(namePG_text));
			divGr.appendChild(divGrt);

			var ulLs = document.createElement("ul");
			var pgrs = dealer.PGR.split(",");
			for (j=0; j<pgrs.length; j++){
				if (this.checkPG(pgrs[j])!=-1){
					var icon = document.createElement("li");
					icon.className = 'icon_' + pgrs[j];
					i = this.checkPG(pgrs[j]);
					icon.appendChild(document.createTextNode(namesOfAvailableProdutGroup[i]));
					ulLs.appendChild(icon);
				}
			}
			divGr.appendChild(ulLs);

			divDt.appendChild(divGr);

			var divCl = document.createElement("div");
			divCl.style.clear = 'both'; 

			var divHr = document.createElement("hr");
			divHr.style.size = '1'; 
			divHr.style.color = '#c8c8c8'; 

		  	$('topcontent').insert(divBtn);
		  	$('topcontent').insert(divDt);
		  	$('topcontent').insert(divCl);
		  	$('topcontent').insert(divHr);

    			while ($('driving_dir').hasChildNodes()) {
				$('driving_dir').removeChild($('driving_dir').firstChild);
			}
			var bDd = document.createElement("b");
			bDd.appendChild(document.createTextNode(driving_dir_text));

			var divDl = document.createElement("div");
			divDl.className ='dl_links';

			var aPr = document.createElement("a");
			aPr.href = '#';
			aPr.className ='print';
			aPr.appendChild(document.createTextNode(print_link_text));
			var destAddress = escape(dealer.STRAS+" "+dealer.HOUSE_NUM1+" "+ dealer.ORT01+" "+dealer.ORT02+"@"+dealer.y+","+dealer.x);
			var fromAddress =  escape(so.sourceLocation.address+"@"+dealer_loc_y+","+dealer_loc_x);
			var name = escape(dealer.NAME1);
			var stras = escape(dealer.STRAS);
			var land = escape(dealer.LAND1);
			var pstlz = escape(dealer.PSTLZ);
			var ort01 = escape(dealer.ORT01);
			var ort02 = escape(dealer.ORT02);
			var telf1 = escape(dealer.TELF1);
			var telfx = escape(dealer.TELFX);
			var email = escape(dealer.EMAIL);
			var url = escape(dealer.URL);
			aPr.onclick=new Function("window.open('print.jsp?fromAddress="+fromAddress+"&destAddress="+destAddress+"&name="+name+"&stras="+stras+"&land="+land+"&pstlz="+pstlz+"&ort01="+ort01+"&ort02="+ort01+"&telf1="+telf1+"&telfx="+telfx+"&email="+email+"&url="+url+"','_blank');");
			divDl.appendChild(aPr);

//			var aLn = document.createElement("a");
//			aLn.href = '#';
//			aLn.className ='links';
//			aLn.appendChild(document.createTextNode(link_text));
//			divDl.appendChild(aLn);

			if (link_resolved == 'true')  {
				var aSd = document.createElement("a");
				aSd.href = my_link_href;
				aSd.target='_blank';
				aSd.className ='send';
				aSd.appendChild(document.createTextNode(send_text));
				divDl.appendChild(aSd);
			}
		  	$('driving_dir').insert(bDd);
   		  	$('driving_dir').insert(divDl);
     	 
		  	window.so.setDirections(dealer.NAME1+ "@"+dealer.y+","+dealer.x); 
	
			$('left-content').className='hidden';
			$('topcontent').className='';
			$('dealers').className='hidden';
			$('dirTable').className='';
			$('driving_dir').className='';
			$('map_canvas').className='map_size_small';
			$('map-start').className='map-start_small';
			$('right-content').className='right-content_small';
			map.checkResize();
			$('resMapBut').innerHTML=enlarge_map_text;
			$('enlarge').className='en_not_long';
   		}

   		function setDirections(toAddress) {
    			if (typeof gdir=='undefined'){
   				gdir = new GDirections(map, $("directions"));
   			} else {
   				gdir.clear();
   				gdir = null;
   				gdir = new GDirections(map, $("directions"));
   			}
  	  		GEvent.addListener(gdir, "load", function() { } );
   			GEvent.addListener(gdir, "error",function() {
				if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
					inlineAlert(er_unknown_address_text + ": " + gdir.getStatus().code);
				else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
					inlineAlert(er_server_error_text + ": " + gdir.getStatus().code);
			   	else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
					inlineAlert(er_missing_query_text + ": " + gdir.getStatus().code);
				else if (gdir.getStatus().code == G_GEO_BAD_KEY)
					inlineAlert(er_bad_key_text + ": " + gdir.getStatus().code);
				else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
					inlineAlert(er_bad_request_text + ": " + gdir.getStatus().code);
				else inlineAlert(er_unknown_error_text);
	   		});
     			gdir.load("from: " + so.sourceLocation.address + "@" + dealer_loc_y + "," + dealer_loc_x + " to: " + toAddress ,{ "locale" : locale_text });
    		}

		function backToList(){
			$('topcontent').className='hidden';
			$('left-content').className='';
			$('dealers').className='';
			$('enlarge').className='en_not_long';
			$('resMapBut').innerHTML=enlarge_map_text;
			$('dirTable').className='hidden';
			$('driving_dir').className='hidden';
			$('map_canvas').className='map_size_small';
			$('map-start').className='map-start_small';
			$('right-content').className='right-content_small';
			map.checkResize();

			gdir.clear();
    			while ($('topcontent').hasChildNodes()) {
				$('topcontent').removeChild($('topcontent').firstChild);
			}
    			while ($('driving_dir').hasChildNodes()) {
				$('driving_dir').removeChild($('driving_dir').firstChild);
			}
			printResPage(curr_page_no);
		}


		function filterSearchResultPGR(filter){
			var fromAddress =  $F('fromAddress');
			if (fromAddress == start_message_text) {
				$("error_location").show();
		  		$("dealer_section_content").setOpacity(0.4);  
			} else { 
				$("slidedown_demo").show();
		  		$("dealer_section_content").setOpacity(0.4);  
				var keys = so.dealerList.keys();
				for (  i=0 ; i < keys.size() ; i++){
					var key = keys[i];
					so.dealerList.unset(keys[i]);
				}
				selectedProdutGroup = filter;
				while ($('dealerlist').hasChildNodes()) {
					$('dealerlist').removeChild($('dealerlist').firstChild);
				}
				map.clearOverlays();
	    			while ($('topcontent').hasChildNodes()) {
					$('topcontent').removeChild($('topcontent').firstChild);
				}
				check_searched = 1;
		  	  	selectedServiceGroupMHK = "";
		  	  	selectedServiceGroup = "";
				window.so.searchDealers($("searchform_id_for_pg"));
			}
		}

		function filterSearchResultSGR(filter){
			var fromAddress =  $F('fromAddress');
			if (fromAddress == start_message_text) {
				$("error_location").show();
		  		$("dealer_section_content").setOpacity(0.4);  
			} else { 
				$("slidedown_demo").show();
		  		$("dealer_section_content").setOpacity(0.4);  
				var keys = so.dealerList.keys();
				for (  i=0 ; i < keys.size() ; i++){
					var key = keys[i];
					so.dealerList.unset(keys[i]);
				}
				selectedServiceGroup = filter;
				while ($('dealerlist').hasChildNodes()) {
					$('dealerlist').removeChild($('dealerlist').firstChild);
				}
				map.clearOverlays();
	    			while ($('topcontent').hasChildNodes()) {
					$('topcontent').removeChild($('topcontent').firstChild);
				}
				check_searched = 1;
				selectedProdutGroup = "";
				selectedServiceGroupMHK = "";
				alert("selectedProdutGroup "+ selectedProdutGroup);
				alert("selectedServiceGroup "+ selectedServiceGroup);
				alert("selectedServiceGroupMHK "+ selectedServiceGroupMHK);

				window.so.searchDealers($("searchform_id_for_pg"));

			}
		}

		function filterSearchResultMHK(filter){
			var fromAddress =  $F('fromAddress');
			if (fromAddress == start_message_text) {
				$("error_location").show();
		  		$("dealer_section_content").setOpacity(0.4);  
			} else { 
				$("slidedown_demo").show();
		  		$("dealer_section_content").setOpacity(0.4);  
				var keys = so.dealerList.keys();
				for (  i=0 ; i < keys.size() ; i++){
					var key = keys[i];
					so.dealerList.unset(keys[i]);
				}
				selectedServiceGroupMHK = filter;
				while ($('dealerlist').hasChildNodes()) {
					$('dealerlist').removeChild($('dealerlist').firstChild);
				}
				map.clearOverlays();
	    			while ($('topcontent').hasChildNodes()) {
					$('topcontent').removeChild($('topcontent').firstChild);
				}
				check_searched = 1;
		  	  	selectedProdutGroup = "";
		  	  	selectedServiceGroup = "";
				window.so.searchDealers($("searchform_id_for_pg"));
			}
		}
   	}


	function mapClick(marker, point) {
		if (!marker) {
			oLat = $("lat");
			oLat.value = point.y;
			oLon = $("lon");
			oLon.value = point.x;
			oDesc = $("desc");
			oDesc.value = 'New point';
		}
	}

	function createMarker(point, formatString, formatString2) {
		var customIcon = new GIcon(G_DEFAULT_ICON);
	 	var marker = new GMarker(point,{ icon:customIcon});
		customIcon.image =serverPath_text + "/system/img/marker_" + dealerletter + ".gif";
	 	customIcon.shadow =serverPath_text + "/system/img/marker_" + dealerletter + ".gif";
	 	customIcon.iconSize = new GSize(icon_map_width_text,icon_map_height_number);
	 	customIcon.shadowSize = new GSize(icon_map_width_text,icon_map_height_number);
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowTabs([new GInfoWindowTab('Infos',formatString)]);
//			marker.openInfoWindowTabs([new GInfoWindowTab('Infos',formatString), new GInfoWindowTab('sonstiges',formatString2)]);
			});
		return marker;
	}

	function checkSafariVersion() {
		var ua = navigator.userAgent.toLowerCase();
		var isSafari = (ua.indexOf('safari') != - 1);
		var versionMinor;
		if (isSafari) {
			versionMinor = parseFloat( ua.substring( ua.lastIndexOf('safari/') + 7 ) );
	 		versionMajor = parseInt(versionMinor);
		 	if (versionMajor<400){
				$("alertBox").show();		 
	 		}
 		}
 	}

	function leftMenuCreatePGDS() {

//START: ProdutGroup section  				
//		while ($("item1").hasChildNodes()) {
//			$("item1").removeChild($("item1").firstChild);
//		}
		for (i=0; i < availableProdutGroup.length; i++) {
			var li1 = document.createElement("li");	
			li1.id = "icon_" + availableProdutGroup[i];
			if (availableProdutGroup.length == (i+1)) {
				li1.className = 'last';
			}
			li1.onclick = new Function("so.filterSearchResultPGR('"+availableProdutGroup[i] +"');");
			li1.onmouseout  =  new Function("this.style.fontWeight = 'normal';");
			li1.onmousemove =  new Function("this.style.fontWeight = 'bold';");
			var span1 = document.createElement("span");
			if (namesOfAvailableProdutGroup[i].length <= 17) {
				span1.className = "item_one_line";
			}
			if ((namesOfAvailableProdutGroup[i].length > 17) && (namesOfAvailableProdutGroup[i].length < 34))  {
				span1.className = "item_two_line";
			}
			if (namesOfAvailableProdutGroup[i].length > 34){
				span1.className = "item_three_line";
			}
			span1.appendChild(document.createTextNode(namesOfAvailableProdutGroup[i]));
			li1.appendChild(span1); 
//			if (selectedProdutGroup.indexOf(availableProdutGroup[i])>=0) {
//				li1.style.fontWeight='bold';
//			}  
			if (null != $("item1")){
				$("item1").appendChild(li1);
			}
		}
//START: Specifications section  				
		for (i=0; i < availableServiceGroup.length; i++) {
			var li2 = document.createElement("li");
			li2.appendChild(document.createTextNode(namesOfAvailableServiceGroup[i]));
			if (availableServiceGroup.length == (i+1)) {
				li2.className='last';
			}
  			li2.onclick = new Function("so.filterSearchResultSGR('"+availableServiceGroup[i] +"');");
  			li2.onmouseout  =  new Function("this.style.fontWeight = 'normal';");
  			li2.onmousemove =  new Function("this.style.fontWeight = 'bold';");  
			if (null != $("item2")){
				$("item2").appendChild(li2);
			}
		}
//START: Promotional activity section  				
		for (i=0; i < moreAvailableServiceGroup.length; i++) {
			var li4 = document.createElement("li");
			li4.appendChild(document.createTextNode(moreNamesOfAvailableServiceGroup[i]));
			if (moreAvailableServiceGroup.length == (i+1)) {
				li4.className='last';
			}
  			li4.onclick = new Function("so.filterSearchResultMHK('"+moreAvailableServiceGroup[i] +"');");
  			li4.onmouseout  =  new Function("this.style.fontWeight = 'normal';");
  			li4.onmousemove =  new Function("this.style.fontWeight = 'bold';");  
			if (null != $("item4")){
				$("item4").appendChild(li4);
  			}
		}
	}