	var isIE = false;
	var reloadMap = 'false';
	var isMapStatic = 'false';	
	
	function createRequestObject(){
		var request_o; //declare the variable to hold the object.
		var browser = navigator.appName; //find the browser name
		if(browser == "Microsoft Internet Explorer"){
			isIE = true;
			/* Create the object using MSIE's method */
			request_o = new ActiveXObject("Microsoft.XMLHTTP");
		}else{
			/* Create the object using other browser's method */
		request_o = new XMLHttpRequest();
		}
		return request_o; //return the object	
	}
	
	var http = createRequestObject();
	
	function getResults(formname, lang, showmap){
		
		var url;
		/* temp char hack */
		var city = getCity(formname).replace(/ü/, '1ue1');
		city = city.replace(/ä/, '1ae1');
		city = city.replace(/ö/, '1oe1');
		city = city.replace(/é/, '1e1');
		city = city.replace(/è/, '1ee1');
		city = city.replace(/à/, '1a1');
		
		var name = getName(formname).replace(/ü/, '1ue1');
		name = name.replace(/ä/, '1ae1');
		name = name.replace(/ö/, '1oe1');
		name = name.replace(/é/, '1e1');
		name = name.replace(/è/, '1ee1');
		name = name.replace(/à/, '1a1');
		
		
		reloadMap = showmap;
		
		url = './modules/mo_ajax_addresscheck.php?';
		var pars;
		pars = 'name=' + name + "&city=" + city + "&zip=" +getZip(formname) + "&dealer_sale=" + getDealerSL(formname) + "&lang=" +lang + "&dealer_service=" + getDealerSV(formname);
		
		tc_log('search_by_form__'+pars);
		
		http.open('get', url+pars);
		http.onreadystatechange = handleResults;
		http.send(null);
	}
	
	function getMap(formname, lang){
		
		var url;
		/* temp char hack */
		var city = getCity(formname).replace(/ü/, '1ue1');
		city = city.replace(/ä/, '1ae1');
		city = city.replace(/ö/, '1oe1');
		city = city.replace(/é/, '1e1');
		city = city.replace(/è/, '1ee1');
		city = city.replace(/à/, '1a1');
		
		var name = getName(formname).replace(/ü/, '1ue1');
		name = name.replace(/ä/, '1ae1');
		name = name.replace(/ö/, '1oe1');
		name = name.replace(/é/, '1e1');
		name = name.replace(/è/, '1ee1');
		name = name.replace(/à/, '1a1');
		
		url = './modules/mo_ajax_map.php?';
		var pars;
		pars = 'name=' + name + "&city=" + city + "&zip=" +getZip(formname) + "&dealer_sale=" + getDealerSL(formname) + "&lang=" +lang + "&dealer_service=" + getDealerSV(formname);				
			
		http.open('get', url+pars);
		http.onreadystatechange = handleMap;
		http.send(null);
	}	
	
	function getCanton(canton) {
		tc_log('search_by_area__'+canton);
		// clear Form
		clearForm("dealers");
		//reloadMap = 'true';
		var lang = getURLParam('lang').length > 0 ? getURLParam('lang') : 'DE';
		url = './modules/mo_ajax_addresscheck.php?';
		var pars;
		pars = 'canton=' + canton + '&lang=' + lang;
		reloadMap = 'false';
		http.open('get', url+pars);
		http.onreadystatechange = handleResults;
		http.send(null);
	}
	
	function clearForm(formname) {
		doc = document.forms[formname];
		
		doc.name.value = '';
		doc.city.value = '';
		doc.zip.value = '';
		
	}
	
	
	function handleResults(){

		if(http.readyState == 4){
			
			if (http.status == 200) {
				var response = http.responseText;
						
				//var hasRecs = new RegExp("<!-- load map -->", "g");
				var hasRecs = /<!-- load map -->/;
				
				if(response.match(hasRecs))
				{
					if(reloadMap=='true')
						callAjax('showMap');
					else
						void(0);
						//document.getElementById("flashmap").innerHTML = '<table cellpadding="0" cellspacing="0" border="0"><tr><td><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="453" height="255" id="dealers" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="_files/dealer.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="_files/dealer.swf" quality="high" bgcolor="#ffffff" width="453" height="255" name="dealers" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></td></tr></table>';					
				}				
				
				showDiv();
				document.getElementById("resultContent").innerHTML = response;				
			}
			
		}
	}
	
	function handleMap(){

		if(http.readyState == 4){
			
			if (http.status == 200) {
				var response = http.responseText;
				document.getElementById("flashmap").innerHTML = response;
			}
			
		}
	}	

	// open_window javascript
	w_openwindow = null;
	function open_window(nurl,windowname,width,height, leftPos, topPos, scrollbars, resizable, newwindow)
	{
		if (typeof leftPos == 'undefined' || leftPos < 0) leftPos = (self.screen.width-width-25)/2;
		if (typeof topPos == 'undefined' || topPos < 0) topPos = (self.screen.height-height-25)/2;	
		if (typeof newwindow == 'undefined') newwindow = 0;
		scrollbars = typeof scrollbars == 'undefined' ? 'yes' : 'no';
		resizable = typeof resizable == 'undefined' ? 'yes' : 'no';
		if (newwindow)
		 	window.open(nurl, windowname,'width='+width+',height='+height+',left='+leftPos+',top='+topPos+',directories=no,location=no,menubar=no,scrollbars='+scrollbars+',status=yes,toolbar=no,resizable='+resizable);
		else
			w_openwindow = window.open(nurl, windowname,'width='+width+',height='+height+',left='+leftPos+',top='+topPos+',directories=no,location=no,menubar=no,scrollbars='+scrollbars+',status=yes,toolbar=no,resizable='+resizable);
	}
	
	
	// -------------------------------------------------------------------------
	// Check Input
	// -------------------------------------------------------------------------
	function numbersonly (myfield, e, dec) {
		var key;
		var keychar;
	
		if (window.event) {
		   key = window.event.keyCode;
		}
		else if (e) {
		   key = e.which;
		}
		else {
		   return true;
		}
		
		keychar = String.fromCharCode(key);
	
		if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27)) {
		   return true;
		}
		else if ((("0123456789.").indexOf(keychar) > -1)) {
			return true;
		}
		else if (dec && (keychar == ".")) {
			myfield.form.elements[dec].focus();
			return false;
		}
		else {
			return false;
		}
	}
	// <input type='text' name='bla' size='20' onKeyPress="return numbersonly(this, event)">
	
	function flashDetect() {
		var flashinstalled = 0;
		var flashversion = 0;
		MSDetect = "false";
		if (navigator.plugins && navigator.plugins.length)
		{
			x = navigator.plugins["Shockwave Flash"];
			if (x)
			{
				flashinstalled = 2;
				if (x.description)
				{
					y = x.description;
					flashversion = y.charAt(y.indexOf('.')-1);
				}
			}
			else
				flashinstalled = 1;
			if (navigator.plugins["Shockwave Flash 2.0"])
			{
				flashinstalled = 2;
				flashversion = 2;
			}
		}
		else if (navigator.mimeTypes && navigator.mimeTypes.length)
		{
			x = navigator.mimeTypes['application/x-shockwave-flash'];
			if (x && x.enabledPlugin)
				flashinstalled = 2;
			else
				flashinstalled = 1;
		}
		else
			MSDetect = "true";
		
		//return flashinstalled;
	}
	
	// function to resize browser window
	function resizeOuterTo(w,h) {
		if (parseInt(navigator.appVersion)>3) {
			if (navigator.appName=="Netscape") {
				top.outerWidth=w;
				top.outerHeight=h;
			}
			else top.resizeTo(w,h);
		}
	}
	
	function openWindowPrint(name, city, zip, dealer_sale, dealer_service, canton, lang) {
		/* temp char hack */
		city = city.replace(/ü/, '1ue1');
		city = city.replace(/ä/, '1ae1');
		city = city.replace(/ö/, '1oe1');
		city = city.replace(/é/, '1e1');
		city = city.replace(/è/, '1ee1');
		city = city.replace(/à/, '1a1');
		
		name = name.replace(/ü/, '1ue1');
		name = name.replace(/ä/, '1ae1');
		name = name.replace(/ö/, '1oe1');
		name = name.replace(/é/, '1e1');
		name = name.replace(/è/, '1ee1');
		name = name.replace(/à/, '1a1');
		
		
		open_window('index.php?action=map.print&name='+name+'&city='+city+'&zip='+zip+'&dealer_sale='+dealer_sale+'&dealer_service='+dealer_service+'&canton='+canton+'&tpl=popup' + '&lang=' + lang, 'prinWindow', 640, 480);
	}
	
	function changeColor(containername, color) {
		containerstyle = eval("document.getElementById('"+containername+"')").style;
		containerstyle.background = color;
	}
	
	function getForm(formname) {
		// code changed on nov 15 2008
		doc = document.forms[formname];
		return doc;
		
		return eval('document.' + formname);
	}
	
	function getName(formname) {
		return getForm(formname).name.value;
	}
	
	function getCity(formname) {
		return getForm(formname).city.value;
	}
	
	function getZip(formname) {
		return getForm(formname).zip.value;
	}
	
	function getDealerSL(formname) {
		return getForm(formname).dealer_sale.checked;
	}
	
	function getDealerSV(formname) {
		return getForm(formname).dealer_service.checked;
	}

	var searchOutput="";
	function searchDealers(formname, lang, showall) {
		var url;
		/* temp char hack */
		var city = getCity(formname).replace(/ü/, '1ue1');
		city = city.replace(/ä/, '1ae1');
		city = city.replace(/ö/, '1oe1');
		city = city.replace(/é/, '1e1');
		city = city.replace(/è/, '1ee1');
		city = city.replace(/à/, '1a1');
		
		var name = getName(formname).replace(/ü/, '1ue1');
		name = name.replace(/ä/, '1ae1');
		name = name.replace(/ö/, '1oe1');
		name = name.replace(/é/, '1e1');
		name = name.replace(/è/, '1ee1');
		name = name.replace(/à/, '1a1');
		
		
		url = './modules/mo_ajax_addresscheck.php';
		var pars;
		pars = 'name=' + name + "&city=" + city + "&zip=" +getZip(formname) + "&dealer_sale=" + getDealerSL(formname) + "&lang=" +lang + "&dealer_service=" + getDealerSV(formname);
		
		/*	
		var myAjax;
		myAjax = new Ajax.Request(
			url, {
				method: 'get', 
				parameters: pars,
				onComplete: showResults
			}
		);
		*/
		
		showall=document.getElementById('hd_val').value;
		/* temp char hack */
		city = getCity(formname).replace(/ü/, '1ue1');
		city = city.replace(/ä/, '1ae1');
		city = city.replace(/ö/, '1oe1');
		city = city.replace(/é/, '1e1');
		city = city.replace(/è/, '1ee1');
		city = city.replace(/à/, '1a1');
		
		var name = getName(formname).replace(/ü/, '1ue1');
		name = name.replace(/ä/, '1ae1');
		name = name.replace(/ö/, '1oe1');
		name = name.replace(/é/, '1e1');
		name = name.replace(/è/, '1ee1');
		name = name.replace(/à/, '1a1');
		
		url = './modules/mo_ajax_map.php';
		pars;
		pars = 'name=' + name + "&city=" + city + "&zip=" +getZip(formname) + "&dealer_sale=" + getDealerSL(formname) + "&lang=" +lang + "&dealer_service=" + getDealerSV(formname);
		
		if(showall=='show')
		{
			var myAjax;
			myAjax = new Ajax.Request(
				url, {
					method: 'get', 
					parameters: pars,
					onComplete: showMap
				}
			);
		
		}		

			
	}
	

	
	function showResults (result) {
		showDiv();
		document.getElementById("resultContent").innerHTML = result.responseText;
		toShowMap(result.responseText);		
	}
	
	function toShowMap(searchOutput)
	{
		noRecs = new RegExp("Keine Suchresultate", "g")
		results = searchOutput.match(noRecs);
		
		if(searchOutput!='')
		{			
			noRecs = new RegExp("Keine Suchresultate", "g")
			results = searchOutput.match(noRecs);
			
			if(results.length==2)
				document.getElementById('hd_val').value='none';
			if(results.length==1)
				document.getElementById('hd_val').value='show';
		}
		else
			document.getElementById('hd_val').value='show';
			
		
	}

	function showMap (result) {
		document.getElementById("flashmap").innerHTML = result.responseText;
	}	
	
	function hideDiv(part) {
		if (document.getElementById) { // DOM3 = IE5, NS6
			if (part == 'all') {
				document.getElementById('results').style.visibility = 'hidden';
			}
		}
		else {
			if (document.layers) { // Netscape 4
				document.results.visibility = 'hidden';
			}
			else { // IE 4
				document.all.results.style.visibility = 'hidden';
			}
		}
	}
	
	
	function showDiv(visibility, lang) {
		
			visibility = 1;
			if (document.getElementById) { // DOM3 = IE5, NS6
				document.getElementById('results').style.visibility = 'visible';
			}
			else {
				if (document.layers) { // Netscape 4
					document.results.visibility = 'visible';
				}
				else { // IE 4
					document.all.results.style.visibility = 'visible';
				}
			}
		}
		
	function getURLParam(strParamName){
	  var strReturn = "";
	  var strHref = window.location.href;
	  if ( strHref.indexOf("?") > -1 ){
	    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
	    var aQueryString = strQueryString.split("&");
	    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
	      if (
	aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
	        var aParam = aQueryString[iParam].split("=");
	        strReturn = aParam[1];
	        break;
	      }
	    }
	  }
	  return strReturn;
	}
