	var ts_triggeron='activetrigger'; 		// class for the active trigger link
	var ts_triggeroff='trigger';			// class for the inactive trigger link
	var ts_dropdownclosed='dropdownhidden'; // closed dropdown
	var ts_dropdownopen='dropdownvisible';	// open dropdown
 	var run_flat_checked='checked'; // closed dropdown
	var run_flat_unchecked='none';	// open dropdown
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = initialize;
	}else{
		window.onload = function() {
		oldonload();
		initialize();
		}
	}   
	var geocoder;
	var map;
 	var gdir;
	var dealers;
	var dealers_sort_dist=new Array();
	var numberOfDealers;
	var temp_page_count = 0;
	var curr_page_no = 1;
	var res_count_pages = 1;
	var pages_end_reach = 0;
	var total_pages = 0;
	var first_relocate = 0;
	var start_points_mark = 0;
	var check_searched = 0;
	var dealer_loc_x = 0;
	var dealer_loc_y = 0;
	var dealer_loc_address = "";
	var dealer_loc_updated_x = 0;
	var dealer_loc_updated_y = 0;
	var dealer_loc_updated_address = "";
	var revertFromAddress = '';
	var revertToAddress = '';
	var revertFromAddress_updated = '';
	var revertToAddress_updated = '';
	var checkFrom = '';
	var checkTo = '';
	var checkRevert = false;
	var source_Locations = new Object();
	var locations = new Object;
	var so = new DealerLocator();
	jQuery(document).ready(function(){
		tamingselect_dl();
		jQuery('input[type=checkbox]').checkbox({
			  cls:'jquery-checkbox',
			  empty: document.getElementById('noDisplay').src
		});
		jQuery('a.load-local').cluetip({
			local:true,
			cluezIndex:3055,
			tracking: true,
			width:140,
			dropShadow:false
		});
		Shadowbox.init({
			players:    ["iframe"]
		});
	});
	function openQuoteScreen(url) {
		Shadowbox.open({
			content:    url,
			player:     "iframe",
			height:     700,
			width:      600
		});
		$("navigation_right").setStyle({zIndex: '1'});
	}
	function ts_check(o,c) {
	 	return new RegExp('\\b'+c+'\\b').test(o.className);
	}
	function ts_swapclass(o,c1,c2) {
		var cn=o.className
		o.className=!ts_check(o,c1)?cn.replace(c2,c1):cn.replace(c1,c2);
	}
	function ts_addclass(o,c) {
		if(!ts_check(o,c)){o.className+=o.className==''?c:' '+c;}
	}
	function ResetBoxes(cParam, run_flat){
		$('quote_overlay').show();
		$('indicator_white').show();
		new Ajax.Request(pageSelectBoxFillerQuoteAjax, { 
			parameters: { run_on_flat: run_flat, cpar: cParam },
			onComplete: function(transport){
				if (200 == transport.status){
					var parameters_tyre_sourse = (eval( "(" + transport.responseText + ")" )).parameters_tyre;                    
					for (i = 0; i < parameters_tyre_sourse.size(); i++) {
						var ul_content= parameters_tyre_sourse[i].ul_content;
						if(ul_content.size()>0){
							updateUl(parameters_tyre_sourse[i].ul_Id, ul_content);
						}
					}
					updateUl("selectBox_1", "");
					$('trigger_0').removeChild($('trigger_0').firstChild); $('trigger_0').appendChild(document.createTextNode(please_select_text));
                                			$('trigger_2').removeChild($('trigger_2').firstChild); $('trigger_2').appendChild(document.createTextNode(please_select_text)); 
                                			$('trigger_3').removeChild($('trigger_3').firstChild); $('trigger_3').appendChild(document.createTextNode(please_select_text)); 
                                			$('trigger_4').removeChild($('trigger_4').firstChild); $('trigger_4').appendChild(document.createTextNode(please_select_text)); 
                                			$('trigger_5').removeChild($('trigger_5').firstChild); $('trigger_5').appendChild(document.createTextNode(please_select_text));
                                			$('trigger_1').removeChild($('trigger_1').firstChild); $('trigger_1').appendChild(document.createTextNode(please_select_text));
                                			$('trigger_6').removeChild($('trigger_6').firstChild); $('trigger_6').appendChild(document.createTextNode(please_select_text));
                               				$('trigger_7').removeChild($('trigger_7').firstChild); $('trigger_7').appendChild(document.createTextNode(please_select_text));  
                                			$('trigger_0').setOpacity(1); 
                                			$('trigger_2').setOpacity(1);
                                			$('trigger_3').setOpacity(1);
                                			$('trigger_4').setOpacity(1);
                                			$('trigger_5').setOpacity(1);
                                			$('trigger_1').setOpacity(1);
                                			$('trigger_6').setOpacity(1);
                                			$('trigger_7').setOpacity(1);
				 	blockUl = false;
				}
				$('indicator_white').hide();
				$('quote_overlay').hide();
			}
		});
                                $('trigger_0').removeChild($('trigger_0').firstChild); $('trigger_0').appendChild(document.createTextNode(please_wait_text));
                                $('trigger_2').removeChild($('trigger_2').firstChild); $('trigger_2').appendChild(document.createTextNode(please_wait_text));
                                $('trigger_3').removeChild($('trigger_3').firstChild); $('trigger_3').appendChild(document.createTextNode(please_wait_text));
                                $('trigger_4').removeChild($('trigger_4').firstChild); $('trigger_4').appendChild(document.createTextNode(please_wait_text)); 
                                $('trigger_5').removeChild($('trigger_5').firstChild); $('trigger_5').appendChild(document.createTextNode(please_wait_text));
                                $('trigger_1').removeChild($('trigger_1').firstChild); $('trigger_1').appendChild(document.createTextNode(please_wait_text));
                                $('trigger_6').removeChild($('trigger_6').firstChild); $('trigger_6').appendChild(document.createTextNode(please_wait_text));
                                $('trigger_7').removeChild($('trigger_7').firstChild); $('trigger_7').appendChild(document.createTextNode(please_wait_text));
                                $('trigger_0').setOpacity(0.4); 
                                $('trigger_2').setOpacity(0.4);
                                $('trigger_3').setOpacity(0.4);
                                $('trigger_4').setOpacity(0.4);
                                $('trigger_5').setOpacity(0.4);
                                $('trigger_1').setOpacity(0.4);
                                $('trigger_6').setOpacity(0.4);
                                $('trigger_7').setOpacity(0.4);
                                blockUl = true;
                                $('form_quote').tyre_name.value="";
                                $('form_quote').speed_index.value="";
                                $('form_quote').rim_size.value="";
                                $('form_quote').tread_width.value="";
                                $('form_quote').aspect_ratio.value="";
                                $('form_quote').load_index.value="";
                                $('form_quote').I_drive.value="";
                                $('checkbox1').className='jquery-checkbox';
                                $('checkbox2').className='jquery-checkbox';
                                $('checkbox3').className='jquery-checkbox';
                                $('replaceUL0').className="dropdownhidden";
                                $('replaceUL1').className="dropdownhidden";
                                $('replaceUL2').className="dropdownhidden";
                                $('replaceUL3').className="dropdownhidden";
                                $('replaceUL4').className="dropdownhidden";
                                $('replaceUL5').className="dropdownhidden";
                                $('replaceUL6').className="dropdownhidden";
                                $('replaceUL7').className="dropdownhidden";
                               	$('trigger_0').className="trigger"; 
                                $('trigger_2').className="trigger"; 
                                $('trigger_3').className="trigger"; 
                                $('trigger_4').className="trigger"; 
                                $('trigger_5').className="trigger"; 
                                $('trigger_1').className="trigger";
                                $('trigger_6').className="trigger";
                                $('trigger_7').className="trigger";
                               
                                for (var i=0; i<8; i++){
	                                var results = $('replaceUL'+i);
    	                                while (results.hasChildNodes()) {
		                       results.removeChild(results.lastChild);
	                                }
	                }	
	}
 
	function updateUl(ul_id, ul_content) {
		var input = $(ul_id).down('input');
		var a = $(ul_id).down('a');
		var ul = $(ul_id).down('ul');
		if (ul_content!="") {
			if (ul_content.size() > 10) {
				$(ul.id).setStyle({height: '190px'});
			} else {
				$(ul.id).setStyle({height: 'auto'});
			}
		}
		if (ul.id == "replaceUL1") {
			for (i = 1; i <= 10; i++) {
				var li = document.createElement("li");
				li.appendChild(document.createTextNode(i));
				li.onmouseover=new Function('this.className="list_active"');
				li.onmouseout=new Function('this.className=""');
				li.onclick=function (){
					input.value=this.id;
					ts_swapclass(a,ts_triggeron,ts_triggeroff);
					ts_swapclass(ul,ts_dropdownopen,ts_dropdownclosed);
					a.firstChild.nodeValue=this.firstChild.nodeValue;
				};
				ul.appendChild(li);
			}
		} else {
			for (i = 0; i < ul_content.size(); i++) {
				var li = document.createElement("li");
				li.id=ul_content[i].IDLI;
				li.appendChild(document.createTextNode(ul_content[i].LI));
				li.onmouseover=new Function('this.className="list_active"');
				li.onmouseout=new Function('this.className=""');
				li.onclick=function (){
					$('quote_overlay').show();
					$('indicator_white').show();
					input.value=this.id;
					ts_swapclass(a,ts_triggeron,ts_triggeroff);
					ts_swapclass(ul,ts_dropdownopen,ts_dropdownclosed);
					a.firstChild.nodeValue=this.firstChild.nodeValue;
					if(input.id=="tread_width"){
						updateBoxes('width');
					}else{
						if(input.id=="aspect_ratio"){
							updateBoxes('height');
						}else{
							if(input.id=="rim_size"){
								updateBoxes('rim');
							}else{
								if(input.id=="tyre_name"){
									updateBoxes('tyre_name');
								}else{
									if(input.id=="speed_index"){
										updateBoxes('speed_index');
									}else{
										if(input.id=="load_index"){
											updateBoxes('load_index');
										}else{
											if(input.id=="I_drive"){
												updateBoxes('I_drive');
											}
										        }
									}
								}
							}
						}
					}
					return false;
				};
				ul.appendChild(li);
	  		}
		}	
	}
                                  
	function updateBoxes(cParam){
		new Ajax.Request(pageSelectBoxFillerQuoteAjax, { 
		parameters: {  tyre_name: $F('tyre_name'), speed_index: $F('speed_index'), rim: $F('rim_size'), width: $F('tread_width'), height: $F('aspect_ratio'), load: $F('load_index'), run_on_flat: $('Value_run_flat').className, departments_of_component: $F('I_drive'), cpar: cParam },
			onComplete: function(transport){
				if (200 == transport.status){
					var parameters_tyre_sourse = (eval( "(" + transport.responseText + ")" )).parameters_tyre;                    
					for (i = 0; i < parameters_tyre_sourse.size(); i++) {
						var ul_content= parameters_tyre_sourse[i].ul_content;
						if(ul_content.size()>0){
							updateUl(parameters_tyre_sourse[i].ul_Id, ul_content);
						}
                                                                   	}
				if($('trigger_0').firstChild.nodeValue ==please_wait_text){$('trigger_0').removeChild($('trigger_0').firstChild); $('trigger_0').appendChild(document.createTextNode(please_select_text));}
                                		if($('trigger_2').firstChild.nodeValue==please_wait_text){$('trigger_2').removeChild($('trigger_2').firstChild); $('trigger_2').appendChild(document.createTextNode(please_select_text)); }
                                		if($('trigger_3').firstChild.nodeValue==please_wait_text){$('trigger_3').removeChild($('trigger_3').firstChild); $('trigger_3').appendChild(document.createTextNode(please_select_text)); }
                                		if($('trigger_4').firstChild.nodeValue==please_wait_text){$('trigger_4').removeChild($('trigger_4').firstChild); $('trigger_4').appendChild(document.createTextNode(please_select_text)); }
                                		if($('trigger_5').firstChild.nodeValue== please_wait_text){$('trigger_5').removeChild($('trigger_5').firstChild); $('trigger_5').appendChild(document.createTextNode(please_select_text)); }
                                		if($('trigger_1').firstChild.nodeValue== please_wait_text){$('trigger_1').removeChild($('trigger_1').firstChild); $('trigger_1').appendChild(document.createTextNode(please_select_text)); }
                                		if($('trigger_6').firstChild.nodeValue== please_wait_text){$('trigger_6').removeChild($('trigger_6').firstChild); $('trigger_6').appendChild(document.createTextNode(please_select_text)); }
                                		if($('trigger_7').firstChild.nodeValue== please_wait_text){$('trigger_7').removeChild($('trigger_7').firstChild); $('trigger_7').appendChild(document.createTextNode(please_select_text)); }
                                		$('trigger_0').setOpacity(1); 
                                		$('trigger_2').setOpacity(1);
                                		$('trigger_3').setOpacity(1);
                                		$('trigger_4').setOpacity(1);
                                		$('trigger_5').setOpacity(1);
                                		$('trigger_1').setOpacity(1);
                               			$('trigger_6').setOpacity(1);
                               			$('trigger_7').setOpacity(1);
				blockUl = false;
				$('indicator_white').hide();
				$('quote_overlay').hide();
				}	
			}
		});
		if($('form_quote').tyre_name.value ==please_select_text){$('trigger_2').removeChild($('trigger_2').firstChild); $('trigger_2').appendChild(document.createTextNode(please_wait_text));}
		if($('form_quote').tread_width.value==please_select_text){$('trigger_0').removeChild($('trigger_0').firstChild); $('trigger_0').appendChild(document.createTextNode(please_wait_text));}
		if($('form_quote').aspect_ratio.value==please_select_text){$('trigger_7').removeChild($('trigger_7').firstChild); $('trigger_7').appendChild(document.createTextNode(please_wait_text));}
		if($('form_quote').rim_size.value==please_select_text){$('trigger_6').removeChild($('trigger_6').firstChild); $('trigger_6').appendChild(document.createTextNode(please_wait_text)); }
		if($('form_quote').speed_index.value== please_select_text){$('trigger_5').removeChild($('trigger_5').firstChild); $('trigger_5').appendChild(document.createTextNode(please_wait_text));}
		if($('form_quote').number_of_tyres.value== please_select_text){$('trigger_1').removeChild($('trigger_1').firstChild); $('trigger_1').appendChild(document.createTextNode(please_wait_text));}
		if($('form_quote').load_index.value== please_select_text){$('trigger_4').removeChild($('trigger_4').firstChild); $('trigger_4').appendChild(document.createTextNode(please_wait_text));}
		if($('form_quote').I_drive.value== please_select_text){$('trigger_3').removeChild($('trigger_3').firstChild); $('trigger_3').appendChild(document.createTextNode(please_wait_text));}
		$('trigger_0').setOpacity(0.4); 
		$('trigger_2').setOpacity(0.4);
		$('trigger_3').setOpacity(0.4);
		$('trigger_4').setOpacity(0.4);
		$('trigger_5').setOpacity(0.4);
		$('trigger_1').setOpacity(0.4);
		$('trigger_6').setOpacity(0.4);
		$('trigger_7').setOpacity(0.4);
		blockUl = true;
		for (var i=0; i<8; i++) {
			if(i!=1) {
				var results = $('replaceUL'+i);
				while (results.hasChildNodes()) {
					results.removeChild(results.lastChild);
				}
			}
		}	
	}

	function showSlidedown() {
		var arrayPageSize = getPageSize();
		var isIE6 = /msie|MSIE 6/.test(navigator.userAgent);  
		slidedownOffsetLeft = -(arrayPageSize[0] - $('content').getWidth()) / 2;
		if (isIE6 == true) {
			$('slidedown_demo').setStyle({ width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px' });
		} else {
			$('slidedown_demo').setStyle({ left: slidedownOffsetLeft + 'px', top: '-60px', width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px' });
		}
		$('selCountry').disable();
		$('navigation_right').setStyle({ zIndex: '1' });
		$('slidedown_demo').setStyle({ zIndex: '3000' });
		$('slidedown_demo').show();
	}

	function hideSlidedown() {
		$('navigation_right').setStyle({ zIndex: '2000' });
		$('slidedown_demo').setStyle({ zIndex: '0' });
		$('slidedown_demo').hide();
		$('selCountry').enable();
	}

	function toggleBox(linkID,pgrId,sgrId,department) {
		var isIE6 = /msie|MSIE 6/.test(navigator.userAgent);  

		if (linkID.getElementsByTagName('p')[0].style.display == 'none') {
			// deselect
			if (pgrId!='') {
				for (i = 0; i < selectPG.length; i++) {
					if (selectPG[i]==(pgrId)) { selectPG.splice(i,1); }
				}
			}
			if (sgrId!='') {
				for (j = 0; j < selectSG.length; j++) {
					if (selectSG[j]==(sgrId)) { selectSG.splice(j,1); }
				}
			}
			if (department!='') {
				for (i = 0; i < SelDepartments.length; i++) {
					if (SelDepartments[i]==(department)) { SelDepartments.splice(i,1); }
				}
			}
			linkID.getElementsByTagName('p')[0].style.display = 'block';
		} else {
			//select
			if (pgrId!='') { selectPG = selectPG.concat(pgrId); }
			if (sgrId!='') { selectSG = selectSG.concat(sgrId); }
			if (department!='') { SelDepartments = SelDepartments.concat(department); }
			linkID.getElementsByTagName('p')[0].style.display = 'none';
		}
		selectedProdutGroup = selectPG.join(",");
		selectedServiceGroup = selectSG.join(",");
		selectedDepartments = SelDepartments.join(",");
	}
	function inlineAlert(text) {
		$("indicator").hide();
		showSlidedown();
		$('error_location').show();
		$("error_location_text").insert(text);
	}

	function closeInlineAlert() {
		$('error_location').hide();
		hideSlidedown();
		while ($('error_location_text').hasChildNodes()) {
			$('error_location_text').removeChild($('error_location_text').firstChild);
		}
	}  

	function resGMap() {
		if ($('selector_results').className=='hidden') {
			$('selector_results').className='';
			$('map_canvas').className='map_size_route';
			map.checkResize();
			$('hide_show_nav').innerHTML=enlarge_map_text;
			$('selector_route').className='selector_route';
		} else if ($('selector_results').className=='') {
			$('selector_results').className='hidden';
			$('map_canvas').className='map_size_route_enl';
			map.checkResize();
			$('hide_show_nav').innerHTML=minimase_map_text;
			$('selector_route').className='selector_route_enl';
		}
	}
	 
	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 ($('route_form').hasChildNodes()) {
			$('route_form').removeChild($('route_form').firstChild);
		}
		while ($('directions').hasChildNodes()) {
			$('directions').removeChild($('directions').firstChild);
		}
		$('selector_route').hide();
		$("map_canvas").className = "map_size_results";

		while ($("selector_results_nav").hasChildNodes()) {
			$("selector_results_nav").removeChild($("selector_results_nav").firstChild);
		}
		var prev_el = document.createElement("a");
		prev_el.className='active';
		prev_el.id='prev_a_link';
		prev_el.innerHTML='';
		prev_el.href='#';
		$("selector_results_nav").insert(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='#';
		$("selector_results_nav").insert(points_el_beg);
		for (var i = 1; i <=  res_count_pages; i++ ) {
			if ( ( (curr_page_no - i < 2)&&(curr_page_no - i > (-2) ) )
			||( (curr_page_no - i == 2)&&( res_count_pages - curr_page_no == 0) )
			||( (curr_page_no == 1)&&( (i == 2)||(i == 3) ) ) )  {
				if (i == 1) {start_points_mark = 0;}
				if (i == res_count_pages) {end_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("");
				}
				$("selector_results_nav").insert(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='#';
		$("selector_results_nav").insert(points_el);
	
		var next_el = document.createElement("a");
		next_el.className='active';
		next_el.id='next_a_link';
		next_el.innerHTML='';
		next_el.href='#';
		$("selector_results_nav").insert(next_el);

		if (first_relocate == 1) {first_relocate = 0; return;}
		if (over_check == 1) {so.getMoreDealers(); return;}

		while ($('selector_results_data').hasChildNodes()) {
			$('selector_results_data').removeChild($('selector_results_data').firstChild);
		}

		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").insert("");
			$("next_a_link").className = "active";
			$("next_a_link").onclick = new Function("");
			$("points_not_link").insert("");
			pages_end_reach = 1;
			total_pages = res_count_pages;
			temp_page_count = dealers.size();
		} else {
			$("next_a_link").insert(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").insert("");
			} else {
				$("points_not_link").insert(" ... ");
			}
			temp_page_count = curr_page_no * dealers_portion;
		}
		if (curr_page_no == 1) {
			$("prev_a_link").insert("");
			$("prev_a_link").className = "active";
			$("prev_a_link").onclick = new Function("");
		} else {
			$("prev_a_link").insert("&lt; "+prev_text);
			$("prev_a_link").className = "";
			$("prev_a_link").onclick = new Function("prevPageClick();");
			if (start_points_mark == 1) {$("points_begin_not_link").insert(" ... ");}
		}
		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);
		}
		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 getChoiceOfLocation(i_nom) {
		showSlidedown();
		$('indicator').show(); 
		so.sourceLocation = locations[i_nom]; 
		dealer_loc_x = (locations[i_nom]).Point.coordinates[0]; 
		dealer_loc_y = (locations[i_nom]).Point.coordinates[1];
		$('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};
		var url 					= url_substr;
		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.getLocation		= getLocation;
		   DealerLocator.prototype.getDealers		= getDealers;
		   DealerLocator.prototype.getMoreDealers		= getMoreDealers;
		   DealerLocator.prototype.createDealerEntry 	= createDealerEntry;
		   DealerLocator.prototype.setDirections	 	= setDirections;
		   DealerLocator.prototype.revertItinerary	 	= revertItinerary;
		   DealerLocator.prototype.createRouting	 	= createRouting;
		   DealerLocator.prototype.dealerDetails	 	= dealerDetails;
		   DealerLocator.prototype.backToList	 	= backToList;
		   DealerLocator.prototype.showDetails	 	= showDetails;
		   DealerLocator.prototype.validateFields	 	= validateFields;
		   DealerLocator.prototype.askQuote	 	= askQuote;
		   DealerLocator.prototype.filterSearchResult	= filterSearchResult;
		   DealerLocator.prototype.multipleLocations 	= multipleLocations;
		   DealerLocator.prototype.checkPG 	                = checkPG ;
		   DealerLocator.prototype.dealerList 		= new Hash();
		   DealerLocator.prototype.filterSearchResultSGR	= filterSearchResultSGR;

		}
		
		function checkPG(value) {
			for (var i = 0; i < availableProdutGroup.length; i++)
			      if (availableProdutGroup[i] == value)
        				return i;
	    		return -1;
		}

		function searchDealers(form) {
			$('selector_route').hide();
			$('selector_results').className = 'hidden';
			$('map_canvas').className = "map_size_start";
			map.checkResize();
		   	showSlidedown();
		   	$('indicator').show();
			dealers_portion = num_deal_comp_number;
			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;
			checkRoute = false;
			var keys = so.dealerList.keys();
			for (  i=0 ; i < keys.size() ; i++){
				var key = keys[i];
				so.dealerList.unset(keys[i]);
			}
			window.setTimeout("so.getLocation()", 100);
			return;
		}

		function getLocation() {
			geocoder.reset();
			var params = new Object();
			var show_multiple_locations_popup = true;
			if ('enable_multiple_locations_popup' in window) {
         		if (enable_multiple_locations_popup == "No"){
		      		show_multiple_locations_popup = false;
            	}
        	}
			
			params.address = $F('fromAddress') + ", " + locate_text;
			geocoder.getLocations(params.address , function(response) {
				if (response.Status.code == 620) {
					inlineAlert(geocoder_time_limit_text);
				}else if (!response || response.Status.code != 200) {
					inlineAlert($F('fromAddress') + " " + not_found_text);
				} else {
					map.clearOverlays();
					if (response.Placemark.size() == 1){
						place = response.Placemark[0];
						dealer_loc_x = place.Point.coordinates[0];
						dealer_loc_y = place.Point.coordinates[1];
						dealer_loc_address = place.address;
						so.getDealers();
					} else if (response.Placemark.size() > 1) {
						if (show_multiple_locations_popup) {
							source_Locations = response.Placemark;
							so.multipleLocations();
						} else if (!show_multiple_locations_popup){
							place = response.Placemark[0];
							dealer_loc_x = place.Point.coordinates[0];
							dealer_loc_y = place.Point.coordinates[1];
							dealer_loc_address = place.address;
							so.getDealers();
						}
					}
				}
				return;
			});
		}


		function multipleLocations() {
			$('indicator').hide();
			locations = source_Locations;

			var divLocations = document.createElement("div");
			divLocations.className="multipleLocations_table";

			var div_close = document.createElement("div");
			div_close.className="error_location_close";
			div_close.appendChild(document.createTextNode(close_text));
			div_close.onclick = new Function("$('multipleLocations').hide(); hideSlidedown(); $('fromAddress').value='"+start_message_text+"';");
			divLocations.appendChild(div_close);

			var div_head = document.createElement("div");
			div_head.className = "multipleHits_header";
			div_head.appendChild(document.createTextNode(text_multiple_result_text));
			divLocations.appendChild(div_head);

			for (i = 0; i < locations.size(); i++) {
				var divHits = document.createElement("div");
				divHits.id = i;
				if (i % 2 == 0) {
					divHits.className = "multipleHits_even";
				} else { divHits.className = "multipleHits_odd"; }
				divHits.appendChild(document.createTextNode(locations[i].address));
//				divHits.appendChild(document.createTextNode(locations[i].address + "coordinates[x]" + locations[i].Point.coordinates[0] + "coordinates[y]" + locations[i].Point.coordinates[1]));
				divHits.onclick = new Function("getChoiceOfLocation("+i+");");
				divLocations.appendChild(divHits);
			}
			$('multipleLocations').update(divLocations);
			$('multipleLocations').show();
		}

		function getMoreDealers() {
			showSlidedown();
		   	$("indicator").show();  
			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.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){
		   			$('indicator').hide();
					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(er_no_dealers_text);
						return;
					}
			    	while ($('selector_results_data').hasChildNodes()) {
						$('selector_results_data').removeChild($('selector_results_data').firstChild);
  					}
					if (first_relocate == 1) {printResPage(1);}
					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").insert("");
						$("next_a_link").className = "active";
						$("next_a_link").onclick = new Function("");
						$("points_not_link").insert("");
						pages_end_reach = 1;
						total_pages = res_count_pages;
						temp_page_count = dealers.size();
					} else {
						$("next_a_link").insert(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").insert("");
						} else {
							$("points_not_link").insert(" ... ");
					}
					temp_page_count = curr_page_no * dealers_portion;
				}
				if (curr_page_no == 1) {
					$("prev_a_link").insert("");
					$("prev_a_link").className = "active";
					$("prev_a_link").onclick = new Function("");
				} else {
					$("prev_a_link").insert("&lt; "+prev_text);
					$("prev_a_link").className = "";
					$("prev_a_link").onclick = new Function("prevPageClick();");
					if (start_points_mark == 1) {$("points_begin_not_link").insert(" ... ");}
				}
					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);
					}
					$('selector_results').className='';
					$('selector_results').setStyle({height: '460px'});

	   	      			map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)); 
    					document.getElementsByTagName("body")[0].style.cursor = "";
	   	      			return;
			    	},
		    		onFailure: function(){ 
		    			inlineAlert(translations.error1);
				},
	    			onComplete: function(){
					hideSlidedown();
		   			$('indicator').hide();
					}
		  		}
			);
    		return; 
   		}
				
		function createDealerEntry(dealer, bounds) {
<!-- Begin infobox -->
			var point = new GLatLng(dealer.y,dealer.x);
			bounds.extend(point);
			var ask_guote = ask_for_quote_text;
			ask_guote = ask_guote.toLowerCase();

			var divTab1 = document.createElement("div");
			divTab1.className='mapInfo';
			var name1 = document.createElement("div");
			name1.className='name';
			name1.appendChild(document.createTextNode(dealer.NAME1 + " " + dealer.NAME2));
			divTab1.appendChild(name1);

			var divInf = document.createElement("div");
			divInf.className ='pr-groups';
			if (address_config.length !=6) {
				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 ));
			} else {
				divInf.appendChild(document.createTextNode(eval(address_config[0]) +" " +eval(address_config[1])));
				divInf.appendChild(document.createElement("br"));
				divInf.appendChild(document.createTextNode(eval(address_config[2])+" "+ eval(address_config[3])+" "+ eval(address_config[4])+" "+ eval(address_config[5]) ));
				
			}
			divInf.appendChild(document.createElement("br"));
			if (dealer.TELF1 + "" != "") {
				divInf.appendChild(document.createTextNode(tel_text + ".:  " + dealer.TELF1));
				divInf.appendChild(document.createElement("br"));
			}

			if (dealer.URL + "" != "") {
				divInf.appendChild(document.createTextNode("URL: "));
				var ur = document.createElement("a");
				ur.href=dealer.URL;
				if(dealer.URL.search("http://") != 0){					
					ur.href='http://'+dealer.URL;
				}
				ur.target = '_blank';
				ur.appendChild(document.createTextNode(ur.href));	
				divInf.appendChild(ur);
				divInf.appendChild(document.createElement("br"));
			}

			divTab1.appendChild(divInf);
			if (enable_ask_for_quote != "No") {
				if ((dealer.EMAIL + "" != "")&&(quote_link =='')) {
					var divRoute = document.createElement("div");
					divRoute.className='details-link';
					var aRoute = document.createElement("a");
					aRoute.href = '#';	
					aRoute.appendChild(document.createTextNode(ask_guote));			
					aRoute.onclick=new Function('so.askQuote("' + dealer.KUNNR + '");');
					divRoute.appendChild(aRoute);
					divTab1.appendChild(divRoute);
				} else if ((dealer.EMAIL + "" != "")&&(quote_link !='')){
					var divRoute = document.createElement("div");
					divRoute.className='details-link';
					var aRoute = document.createElement("a");
					aRoute.href = quote_link;	
					//aRoute.target = 'blank';	
					aRoute.appendChild(document.createTextNode(ask_guote));			
					divRoute.appendChild(aRoute);
					divTab1.appendChild(divRoute);
				}
			}

			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 customIcon = new GIcon(G_DEFAULT_ICON);
		 	customIcon.image = call_marker_image_text;
		 	customIcon.shadow =call_marker_image_text;
		 	customIcon.imageMap = [0,0,0,icon_map_height_number,icon_map_width_number,icon_map_height_number,icon_map_width_number,0];
		 	customIcon.iconAnchor = new GPoint(13,15);
		 	customIcon.iconSize = new GSize(icon_map_width_number,icon_map_height_number);
		 	customIcon.shadowSize = new GSize(icon_map_width_number,icon_map_height_number);
		 	var marker = new GMarker(point,{ icon:customIcon});
			GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowTabs([new GInfoWindowTab('Info',divTab1)]);
			});
<!-- End infobox -->
<!-- Begin list of dealers -->					   		
            map.addOverlay(marker);
			var div = document.createElement("div");
			div.className ='dealer_inf';
			div.onmouseover =new Function('this.className="dealer_inf_hover"');
			div.onmouseout =new Function('this.className="dealer_inf"');
			var call_Routing = true;
			if ('enable_routing' in window) {
         		if (enable_routing != "Yes"){
		      		call_Routing = false;
            	}
        	}				

			if ( document.addEventListener ) {
				div.addEventListener("click",function() {
				marker.openInfoWindowTabs([new GInfoWindowTab('Info',divTab1)]);
				if (call_Routing){
					so.createRouting(dealer.KUNNR);
				}

				},false);
			} else if ( document.attachEvent ) {
				div.attachEvent("onclick",function() {
				marker.openInfoWindowTabs([new GInfoWindowTab('Info',divTab1)]);
				if (call_Routing){
					so.createRouting(dealer.KUNNR);
				}

				 });
			}

			var divName = document.createElement("div");
			divName.className ='name';
			divName.appendChild(document.createTextNode(dealer.NAME1 + " " + dealer.NAME2));
			div.appendChild(divName);

			var divAddress = document.createElement("div");
			divAddress.className ='address';
			if (address_config.length !=6) {
				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));
			} else {
				divAddress.appendChild(document.createTextNode(eval(address_config[0]) + " " +eval(address_config[1])));
				divAddress.appendChild(document.createElement("br"));
				divAddress.appendChild(document.createTextNode(eval(address_config[2]) + " " + eval(address_config[3]) + " " + eval(address_config[4]) + " " + eval(address_config[5])));
			}
			div.appendChild(divAddress);
			$("selector_results_data").insert(div);
			$("map_canvas").className = "map_size_results";
			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){
			$("selector_route").setStyle({height:'130px'});
			while ($('route_form').hasChildNodes()) {
				$('route_form').removeChild($('route_form').firstChild);
			}
			while ($('route_nav').hasChildNodes()) {
				$('route_nav').removeChild($('route_nav').firstChild);
			}
			if ($('directions').hasChildNodes()) {
				gdir.clear();
			}
			$('directions').hide();
			$('map_canvas').className = "map_size_route";
			map.checkResize();
			$('selector_route').show();
  			var dealer = window.so.dealerList.get(KUNNR);
			map.setCenter(new GLatLng(window.so.dealerList.get(KUNNR).y,window.so.dealerList.get(KUNNR).x), 16);
<!-- Buttons section -->
			var aPrint = document.createElement("a");
			aPrint.className = 'print';
			aPrint.href = '#';
			aPrint.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(dealer_loc_address+"@"+dealer_loc_y+","+dealer_loc_x);
			var fromAddressInput =  escape(dealer_loc_address);
			var toAddressInput =  escape(dealer.STRAS+" "+dealer.HOUSE_NUM1+" "+dealer.LAND1+" "+ dealer.ORT01+" "+dealer.ORT02);
			var name = escape(dealer.NAME1 + " " + dealer.NAME2);
			var telf1 = escape(dealer.TELF1);
			aPrint.onclick=new Function("window.open('print.jsp?fromAddress="+fromAddress+"&destAddress="+destAddress+"&fromAddressInput="+fromAddressInput+"&toAddressInput="+toAddressInput+"&name="+name+"&telf1="+telf1+"','_blank');");
			$('route_nav').appendChild(aPrint);

			var aMap = document.createElement("a");
			aMap.id = 'hide_show_nav';
			aMap.className = 'hide_show_nav';
			aMap.href = '#';
			aMap.appendChild(document.createTextNode(enlarge_map_text));
			aMap.onclick=new Function('resGMap();');
			$('route_nav').appendChild(aMap);


			revertFromAddress = dealer_loc_address + "@" + dealer_loc_y + "," + dealer_loc_x;
			revertToAddress = dealer.NAME1 + '@' + dealer.y + ',' + dealer.x;
			checkFrom = dealer_loc_address;
			checkTo = dealer.STRAS + " " + dealer.HOUSE_NUM1 + " " + dealer.LAND1 + " " +  dealer.ORT01 + " " + dealer.ORT02;
			var aRevert = document.createElement("a");
			aRevert.className = 'funct';
			aRevert.href = '#';
			aRevert.appendChild(document.createTextNode(revert_itinerary_text));
			aRevert.onclick=new Function('so.revertItinerary();');
			$('route_nav').appendChild(aRevert);
			
			if (enable_ask_for_quote != "No") { 
				if ((dealer.EMAIL + "" != "")&&(quote_link =='')) {
					var aQuate = document.createElement("a");
					aQuate.className = 'thickbox';
					aQuate.id = 'thickbox';
					aQuate.href = '#';
					aQuate.appendChild(document.createTextNode(ask_for_quote_text));
					aQuate.onclick=new Function('so.askQuote("' + dealer.KUNNR + '");');
					$('route_nav').appendChild(aQuate);
				} else if ((dealer.EMAIL + "" != "")&&(quote_link !='')) {
					var aQuate = document.createElement("a");
					aQuate.className = 'thickbox';
					aQuate.id = 'thickbox';
					aQuate.href = quote_link;
					//aQuate.target = "blank";
					aQuate.appendChild(document.createTextNode(ask_for_quote_text));
					$('route_nav').appendChild(aQuate);
				}
			}

			var aClose = document.createElement("a");
			aClose.className = 'close';
			aClose.href = '#';
			aClose.appendChild(document.createTextNode(close_text));
			aClose.onclick=new Function('so.backToList();');
			$('route_nav').appendChild(aClose);

<!-- Route section -->
			var dl = document.createElement("dl");

			var dtFrom = document.createElement("dt");
			dtFrom.appendChild(document.createTextNode(from_text+":"));
			dl.appendChild(dtFrom);

			var ddFrom = document.createElement("dd");
			var inputFrom = document.createElement("input");
			inputFrom.type = 'text';
			inputFrom.id = 'source';
			inputFrom.value = dealer_loc_address;
			ddFrom.appendChild(inputFrom);

			dl.appendChild(ddFrom);

			var dtTo = document.createElement("dt");
			dtTo.appendChild(document.createTextNode(to_text+":"));
			dl.appendChild(dtTo);

			var ddTo = document.createElement("dd");
			var inputTo = document.createElement("input");
			inputTo.type = 'text';
			inputTo.id = 'destination';
			inputTo.value = dealer.STRAS + " " + dealer.HOUSE_NUM1 + " " + dealer.LAND1 + " " +  dealer.ORT01 + " " + dealer.ORT02;
			ddTo.appendChild(inputTo);

			dl.appendChild(ddTo);

			var inputButton = document.createElement("input");
			inputButton.type = 'text';
			inputButton.onclick=new Function('so.setDirections(); $("selector_route").setStyle({height:"auto"});');
			inputButton.className = 'routeBtn';
			inputButton.value = plan_route_text;

		  	$('route_form').insert(dl);
		  	$('route_form').insert(inputButton);

  		}


		function dealerDetails(KUNNR) {
			while ($('theBox_l').hasChildNodes()) {
				$('theBox_l').removeChild($('theBox_l').firstChild);
			}
			$('indicator').hide();
  			var dealer = window.so.dealerList.get(KUNNR);

			var hTitle = document.createElement("h1");
			hTitle.appendChild(document.createTextNode(ask_for_quote_text));

			var hName = document.createElement("h2");
			hName.id = 'dealerName';
			hName.appendChild(document.createTextNode(dealer.NAME1 + " " + dealer.NAME2));

			var pInf = document.createElement("p");
			pInf.appendChild(document.createTextNode(dealer.STRAS +" " +dealer.HOUSE_NUM1));
			pInf.appendChild(document.createElement("br"));
			pInf.appendChild(document.createTextNode(dealer.LAND1+" "+ dealer.PSTLZ+" "+ dealer.ORT01+" "+ dealer.ORT02 ));
			pInf.appendChild(document.createElement("br"));
			pInf.appendChild(document.createTextNode(tel_text + ":  "));
			pInf.appendChild(document.createTextNode(dealer.TELF1));
			
			
			if (dealer.URL + "" != "") {
				pInf.appendChild(document.createElement("br"));
				pInf.appendChild(document.createElement("br"));
				pInf.appendChild(document.createTextNode("URL: "));
				var url = document.createElement("a");
				url.href=dealer.URL;
				if(dealer.URL.search("http://") > -1){					
					url.href='http://'+dealer.URL;
				}
				url.target = '_blank';
				url.style.color= 'white';
				url.appendChild(document.createTextNode(url.href));	
				pInf.appendChild(url);
				pInf.appendChild(document.createElement("br"));
			}

			var pMail = document.createElement("p");
			pMail.id = 'dealerMail';
			pMail.style.display = 'none';
			pMail.appendChild(document.createTextNode(dealer.EMAIL));

		  	$('theBox_l').appendChild(hTitle);
		  	$('theBox_l').appendChild(hName);
		  	$('theBox_l').appendChild(pInf);
		  	$('theBox_l').appendChild(pMail);
		}

		function validateFields() {
			while ($('error').hasChildNodes()) {
				$('error').removeChild($('error').firstChild);
			} 

			name_input = $F('name_input');
			email_input = $F('email_input');
	
			if ($('checkbox2').hasClassName('jquery-checkbox-checked')) {
				if (name_input == name_input_text) {
					$('error').insert(error_name_text+'<br/>');
				}
				if ((email_input.length == 0)||(!checkEmail(email_input))) {
					$('error').insert(error_email_text+'<br/>');
				} 
				if (($('trigger_0').firstChild.nodeValue == please_select_text)||($('trigger_1').firstChild.nodeValue == please_select_text)||
					($('trigger_2').firstChild.nodeValue == please_select_text)||($('trigger_3').firstChild.nodeValue == please_select_text)||
					($('trigger_4').firstChild.nodeValue == please_select_text)||($('trigger_5').firstChild.nodeValue == please_select_text)||($('trigger_6').firstChild.nodeValue == please_select_text)) {
						$('error').insert(error_tyre_options_text+'<br/>');
				}
				if ((name_input != name_input_text)&&((email_input.length != 0)&&(checkEmail(email_input)))) {
					if (($('trigger_0').firstChild.nodeValue != please_select_text)||($('trigger_1').firstChild.nodeValue != please_select_text)||
					($('trigger_2').firstChild.nodeValue != please_select_text)||($('trigger_3').firstChild.nodeValue != please_select_text)||
					($('trigger_4').firstChild.nodeValue != please_select_text)||($('trigger_5').firstChild.nodeValue != please_select_text)||($('trigger_6').firstChild.nodeValue == please_select_text)) {
		  				var param = new Object();
						param.dealerMail = $('dealerMail').firstChild.nodeValue;
						param.dealerName = $('dealerName').firstChild.nodeValue;
						param.userMail = email_input;
						param.userName = name_input;
						if ($('checkbox3').hasClassName('jquery-checkbox-checked')) { param.sendCopy = "yes"; } else { param.sendCopy = "no"; }
						if ($('checkbox1').hasClassName('jquery-checkbox-checked')) { param.runOnFlat = "yes"; } else { param.runOnFlat = "no"; }
						param.tyreName = $F('tyre_name');
						param.numberOfTyre = $('trigger_1').firstChild.nodeValue;
						param.treadWidth = $('trigger_0').firstChild.nodeValue;
						param.aspectRatio = $('trigger_7').firstChild.nodeValue;
						param.rimSize = $('trigger_6').firstChild.nodeValue;
						param.speedIndex = $('trigger_5').firstChild.nodeValue;
						param.loadIndex = $('trigger_4').firstChild.nodeValue;

		   				new Ajax.Request(url+ "send_mail.jsp",
				  			{
				    			method:'post',
			    				parameters:param,
			    				onSuccess: function(transport){
			   					$('indicator').hide();
		   	      					return;
					    		},
				    			onFailure: function(){ 
				    				inlineAlert(error_send_mail_text);
							},
			    				onComplete: function(){
								hideSlidedown();
				   				$('indicator').hide();
								$('theBox').hide();
								}
				  			}
						);
					}
				}
			}

		}

   		function setDirections() {
			if (checkRevert) {
				FromAddressTemp = revertFromAddress;
				ToAddressTemp = revertToAddress;
				revertFromAddress = ToAddressTemp;
				revertToAddress = FromAddressTemp;
			}
			checkRevert = false;
			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);
   			});
			if ((($F('source') == checkFrom)||($F('source') == checkTo))&&(($F('destination') == checkFrom)||($F('destination') == checkTo))){
				gdir.load("from: " + revertFromAddress + " to: " + revertToAddress,{ "locale" : locale_text });
				$('directions').show();
			} else {
				if (($F('source') != checkFrom)&&($F('source') != checkTo)) {
					paramAddress = $F('source');
				}
				if (($F('destination') != checkFrom)&&($F('destination') != checkTo)) {
					paramAddress = $F('destination');
				}
				geocoder.reset();
				var param = new Object();
				var show_multiple_locations_popup = true;
				if ('enable_multiple_locations_popup' in window) {
					if (enable_multiple_locations_popup == "No"){
						show_multiple_locations_popup = false;
					}
				}
				param.address = paramAddress + ", " + locate_text;
				geocoder.getLocations(param.address , function(response) {
					if (response.Status.code == 620) {
						inlineAlert(geocoder_time_limit_text);
					}else if (!response || response.Status.code != 200) {
						inlineAlert(paramAddress + " " + not_found_text);
					} else {
						map.clearOverlays();
						if (response.Placemark.size() >= 1){
							place_updated = response.Placemark[0];
							dealer_loc_updated_x = place_updated.Point.coordinates[0];
							dealer_loc_updated_y = place_updated.Point.coordinates[1];
							dealer_loc_updated_address = place_updated.address;

                            if (($F('source') != checkFrom)&&($F('source') != checkTo)) {
                                $('source').value = dealer_loc_updated_address;
                                revertFromAddress_updated = dealer_loc_updated_address + "@" + dealer_loc_updated_y + "," + dealer_loc_updated_x;
                                gdir.load("from: " + revertFromAddress_updated + " to: " + revertToAddress,{ "locale" : locale_text });
                            }
                            if (($F('destination') != checkFrom)&&($F('destination') != checkTo)) {
                                $('destination').value = dealer_loc_updated_address;
                                revertToAddress_updated = dealer_loc_updated_address + "@" + dealer_loc_updated_y + "," + dealer_loc_updated_x;
                                gdir.load("from: " + revertFromAddress + " to: " + revertToAddress_updated,{ "locale" : locale_text });
                            }
                            $('directions').show();
                        }
					}
				});
			}
    	}

		function revertItinerary() {
			checkRevert = true;
			sourceInput = $F('source');
			destinationInput = $F('destination');
			$('destination').value = sourceInput;
			$('source').value = destinationInput ;
			if ($('directions').hasChildNodes()) {
				while ($('directions').hasChildNodes()) {
					$('directions').removeChild($('directions').firstChild);
				}
				so.setDirections();
			}
		}

		function backToList(){
			$("selector_route").setStyle({height:'130px'});
			$('map_canvas').className = "map_size_results";
			map.checkResize();
			$('selector_results').className='';
			printResPage(curr_page_no);
			$('selector_route').hide();
			if ($('selector_route').className=='selector_route_enl') {
				$('selector_route').className='selector_route';
				$('hide_show_nav').innerHTML=enlarge_map_text;
			}
		}

		function askQuote(KUNNR){
  			var dealer = window.so.dealerList.get(KUNNR);
			while ($('error').hasChildNodes()) {
				$('error').removeChild($('error').firstChild);
			} 
			$('slidedown_demo').setStyle({ background: 'black' });
			showSlidedown();
//			$('indicator').show();
			$('Value_run_flat').className='none';
			so.dealerDetails(dealer.KUNNR);
			$('theBox').show();
			ResetBoxes('reset');
		}

		function filterSearchResult(filter){
			var fromAddress =  $F('fromAddress');
			if (fromAddress == start_message_text) {
		  		inlineAlert(location_error_message_text);
			} else { 
				showSlidedown();
		   		$("indicator").show();
				var keys = so.dealerList.keys();
				for (  i=0 ; i < keys.size() ; i++){
					var key = keys[i];
					so.dealerList.unset(keys[i]);
				}
				selectedProdutGroup = filter;
				while ($('selector_results_data').hasChildNodes()) {
					$('selector_results_data').removeChild($('selector_results_data').firstChild);
				}
				map.clearOverlays();
				check_searched = 1;
		  	  	selectedServiceGroup = "";
				window.so.searchDealers($("searchform_id_for_pg"));
			}
		}

		function filterSearchResultSGR(filter){
			var fromAddress =  $F('fromAddress');
			if (fromAddress == start_message_text) {
		  		inlineAlert(location_error_message_text);
			} else { 
				showSlidedown();
		   		$("indicator").show();
				var keys = so.dealerList.keys();
				for (  i=0 ; i < keys.size() ; i++){
					var key = keys[i];
					so.dealerList.unset(keys[i]);
				}
				selectedServiceGroup = filter;
				while ($('selector_results_data').hasChildNodes()) {
					$('selector_results_data').removeChild($('selector_results_data').firstChild);
				}
				map.clearOverlays();
				check_searched = 1;
		  	  	selectedProdutGroup = "";
				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 = call_marker_image_text;
	 	customIcon.shadow = call_marker_image_text;
	 	customIcon.iconSize = new GSize(icon_map_width_number,icon_map_height_number);
	 	customIcon.shadowSize = new GSize(icon_map_width_number,icon_map_height_number);
		GEvent.addListener(marker, "click", function() { marker.openInfoWindowTabs([new GInfoWindowTab('Infos',formatString)]); });
		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  -->
		for (i=0; i < availableProdutGroup.length; i++) {
			var ul1 = document.createElement("ul");
			ul1.className = "selector_selection";
			var li1 = document.createElement("li");	
//			li1.onclick = new Function("so.filterSearchResult('"+availableProdutGroup[i] +"');");
			li1.onmousedown  =  new Function("toggleBox(this,'"+availableProdutGroup[i]+"','','" +Departments[i]+ "');");
			var p1 = document.createElement("p");
			p1.className = "cube";
			if (selectPG[i] == availableProdutGroup[i]) {
				p1.style.display='none';
			}
			li1.appendChild(p1); 
			var a1 = document.createElement("a");
			a1.href = "#";
			a1.appendChild(document.createTextNode(namesOfAvailableProdutGroup[i]));
			li1.appendChild(a1); 
			ul1.appendChild(li1); 
			if (null != $("selecter_options")){
				$("selecter_options").insert(ul1);
			}
		}
<!-- END: ProdutGroup section  -->

<!-- START: ServiceGroup section  -->
		for (i=0; i < availableServiceGroup.length; i++) {
			var ul2 = document.createElement("ul");
			ul2.className = "selector_selection";
			var li2 = document.createElement("li");	
//			li2.onclick = new Function("so.filterSearchResultSGR('"+availableServiceGroup[i] +"');");
			li2.onmousedown  =  new Function("toggleBox(this,'','"+availableServiceGroup[i] +"'); ");
			var p2 = document.createElement("p");
			p2.className = "cube";
			if (selectSG[i] == availableServiceGroup[i]) {
				p1.style.display='none';
			}
			li2.appendChild(p2); 
			var a2 = document.createElement("a");
			a2.href = "#";
			a2.appendChild(document.createTextNode(namesOfAvailableServiceGroup[i]));
			li2.appendChild(a2); 
			ul2.appendChild(li2); 
			if (null != $("selecter_optionsTwo")){
				$("selecter_optionsTwo").insert(ul2);
			}
		}
<!-- END: ServiceGroup section   -->

	}

	function respondToClick() {
		ts_swapclass($('Value_run_flat'),run_flat_checked,run_flat_unchecked);
	  	ResetBoxes('rest', $('Value_run_flat').className);
		$('checkbox1').addClassName('jquery-checkbox-checked');
	}
