
var myReq = new CXMLHttpRequest();
var myReqCache = new Array();

function getCount(status,params,req) {
  if (!status) {
    var callback = getCount;
    var aEl=document.forms[0].elements;
    var aElCnt=aEl.length;
    var qs='';
    for (var i=0;i<aElCnt;i++){
    	var el=aEl[i];
	if(el.type=='checkbox'||el.type=='radio'){
		if(el.checked)qs+=('&'+el.name+'='+el.value);
	}else{
		if(el.value!='')qs+=('&'+el.name+'='+el.value);
	}
    }
    var cnt=myReqCache[qs];
    if(cnt>=0){
        var marke='';
	    var sucheMarke= /&marke=(\d+)/;
	    var sucheErgebnis=sucheMarke.exec(qs);
	    if (sucheErgebnis!=null)marke=sucheErgebnis[1];
	    if (marke=='1')document.getElementById('rp_cnt').innerHTML='<strong>'+cnt+'</strong> Alfa Romeo Fahrzeug'+'e'.substr(0,(cnt!=1))+' gefunden.';
	    else document.getElementById('rp_cnt').innerHTML='<strong>'+cnt+'</strong> Gebrauchtfahrzeug'+'e'.substr(0,(cnt!=1))+' gefunden.';
	    var cn=document.getElementById('frmsubmit');
	    if(cnt>0){cn.className=cn.className.replace(/ disabled/g,'');document.getElementById('meldung').style.display='none';}
	    else {document.getElementById('meldung').style.display='block';if(cn.className.indexOf('disabled')==-1)cn.className=cn.className+' disabled';}
    }else{
	myReq.sendXMLHttpRequest(0,'http://'+location.hostname+'/count.asp?dmy=1'+qs,callback,qs);
    }
  }
  else if (status == 1) {
	//alert(params+' / '+req.responseText);
	var cnt=parseInt(req.responseText);
	if(!isNaN(cnt)){
	    var marke='';
	    var sucheMarke= /&marke=(\d+)/;
	    var sucheErgebnis=sucheMarke.exec(params);
	    if (sucheErgebnis!=null)marke=sucheErgebnis[1];
	    if (marke=='1')document.getElementById('rp_cnt').innerHTML='<strong>'+cnt+'</strong> Alfa Romeo Fahrzeug'+'e'.substr(0,(cnt!=1))+' gefunden.';
	    else document.getElementById('rp_cnt').innerHTML='<strong>'+cnt+'</strong> Gebrauchtfahrzeug'+'e'.substr(0,(cnt!=1))+' gefunden.';
	    var cn=document.getElementById('frmsubmit');
	    if(cnt>0){cn.className=cn.className.replace(/ disabled/g,'');document.getElementById('meldung').style.display='none';}
	    else {document.getElementById('meldung').style.display='block';if(cn.className.indexOf('disabled')==-1)cn.className=cn.className+' disabled';}
		myReqCache[params]=cnt;
	}else{callback(2,params,false);}
	}
  else if (status == 2) {
	//Error
	var cnt=0;
	var marke='';
    var sucheMarke= /&marke=(\d+)/;
    var sucheErgebnis=sucheMarke.exec(params);
    if (sucheErgebnis!=null)marke=sucheErgebnis[1];
    if (marke=='1')document.getElementById('rp_cnt').innerHTML='<strong>'+cnt+'</strong> Alfa Romeo Fahrzeug'+'e'.substr(0,(cnt!=1))+' gefunden.';
    else document.getElementById('rp_cnt').innerHTML='<strong>'+cnt+'</strong> Gebrauchtfahrzeug'+'e'.substr(0,(cnt!=1))+' gefunden.';
    var cn=document.getElementById('frmsubmit');
    if(cnt>0)cn.className=cn.className.replace(/ disabled/g,'');
    else if(cn.className.indexOf('disabled')==-1)cn.className=cn.className+' disabled';
  }
  return;
}

var abgeschickt=0;
function checkContactForm() {
  if (!abgeschickt) {
    abgeschickt=1;
    var frm=document.forms['kontakt'];
    if (!frm['p'].value&&!frm['a'].value) {
      	alert('Bitte wählen Sie einen Händler aus, an den Ihre Anfrage verschickt werden kann!');
      	document.forms['hdlsuche']['qy'].focus();
      	abgeschickt=0;
      	return false;
    }
    proof=new Array();
    proof[0]=new Array("name",/[a-zA-Z]+/,"Bitte geben Sie Ihren Namen an!");
    proof[1]=new Array("telefon",/[0-9]{5,}/,"Bitte geben Sie Ihre Telefonnummer an!");
    proof[2]=new Array("email",/@/,"Bitte geben Sie Ihre E-Mail Adresse an!");
    for (i=0;i<proof.length;i++){
    if(!proof[i][1].test(document.forms['kontakt'][proof[i][0]].value)){
    	alert(proof[i][2]);
    	document.forms['kontakt'][proof[i][0]].focus();
    	abgeschickt=0;
    	return false;}	
    }
    sendMail();
  }
  else {
    //alert('Ihr Kontaktformular wird bereits verschickt - bitte haben Sie einen Moment Geduld!');
    return false;
  }
}

function sendMail(status,params,req) {
  if (!status) {
    var frm=document.forms['kontakt'];
    var query_parts=new Array;
    var fields=new Array('a','p','id','name','telefon','email','nachricht');
    for (var i=0;i<fields.length;i++) {
      if (frm[fields[i]]) query_parts.push(fields[i]+'='+frm[fields[i]].value);
    }
    var query_string = query_parts.join('&');
    var callback = sendMail;
    document.getElementById('abschicken').className='button abschicken'; //abschicken_disabled
    document.getElementById('abschicken').style.cursor='default';
    document.getElementById('activity_indicator').src='img/misc/activity_indicator.gif';
    myReq.sendXMLHttpRequest(0,'/kontakt.alfadue.pl?'+query_string,callback,'',query_string);
  }
  else if (status == 1) {
    var resp=parseInt(req.responseText);
    if (resp==1) {
      document.getElementById('kontaktbox').innerHTML='<h3><img src="img/headlines/h3_anfrage_gesendet.gif" width="105" height="15" title="" alt="Anfrage gesendet" /></h3><p><strong>Vielen Dank für Ihr Interesse!</strong><br /><br />' +
        'Ihre Anfrage wird nach Eingang<br />schnellstmöglich bearbeitet.</p>';
    }
    else {
      notSent(resp);
    }
  }
  else if (status == 2) {
    notSent(0);
  }
  return;
}

function notSent(rc) {
  abgeschickt=0;
  alert(resp);
  //alert('Es ist ein Fehler beim Übermitteln Ihrer Anfrage aufgetreten. Bitte versuchen Sie es erneut');
  document.getElementById('abschicken').className='button abschicken';
  document.getElementById('abschicken').style.cursor='pointer';
  document.getElementById('activity_indicator').src='img/misc/blank.gif';
}

/* -----------------------------------------------------------------------------
  DEALER SEARCH
----------------------------------------------------------------------------- */
function focus_suche() {
  var field=d.forms['hdlsuche']['qy'];
  var id=d.getElementById('q');
  if (field.value=='PLZ oder Ort eingeben') {
    field.value='';
    id.style.color='#000';
  }
}
function blur_suche() {
  var field=d.forms['hdlsuche']['qy'];
  var id=d.getElementById('q');
  if (field.value=='') {
    field.value='PLZ oder Ort eingeben';
    id.style.color='#777';
  }
}
function checkEnter(e) {
  var characterCode;
  if(e && e.which){
    e = e;
    characterCode = e.which;
  }
  else{
    e = event;
    characterCode = e.keyCode;
  }
  if(characterCode == 13){
    dealerSearch();
    return false;
  }
  else{
    return false;
  }
}
function showData(hdl) {
  hdl=parseInt(hdl);
  resultClose();
  if(hdl>0) {
    d.getElementById('show_data').innerHTML=d.getElementById('d'+hdl).innerHTML+'<br /><a href="#" onclick="this.blur();showSearch();return false" class="button andere_haendler"></a>';
    if (document.forms['kontakt']) document.forms['kontakt']['p'].value=hdl;
    document.getElementById('hdlsuche').style.display='none';
  }
}
function showSearch() {
  document.getElementById('show_data').innerHTML='';
  if (document.forms['kontakt']) document.forms['kontakt']['p'].value='';
  document.getElementById('hdlsuche').style.display='block';
  document.forms['hdlsuche']['qy'].focus();
}
function resultClose() {
  d.getElementById('result').style.display='none';
  d.getElementById('result').innerHTML = '';
  if (document.forms['kontakt']) document.forms['kontakt']['p'].value='';
  document.forms['hdlsuche']['qy'].focus();
}
function newSearch() {
  d.forms['probefahrt']['mnr'].value='';
  d.getElementById('hsr').style.visibility='hidden';
  d.getElementById('shdl').innerHTML='';
  d.getElementById('hsi').style.visibility='visible';
  d.forms['probefahrt']['qy'].value='PLZ oder Ort eingeben';
  return false;
}
function dealerSearch() {
  proof=new Array();
  proof[0]=new Array("qy",/^([0-9]{5})$|^([a-zA-ZäöüÄÖÜß]{2}.{0,28})$|^([0-9]{5})\s+([a-zA-ZäöüÄÖÜß]{2}.{0,28})$/,"Bitte geben Sie eine 5-stellige Postleitzahl oder einen Ort ein!");
  for (i=0;i<proof.length;i++){
  if(!proof[i][1].test(document.forms['hdlsuche'][proof[i][0]].value)){
  	alert(proof[i][2]);
  	document.forms['hdlsuche'][proof[i][0]].focus();
  	return false;}	
  }
  var q = document.forms['hdlsuche']['qy'].value;
  if (q=='PLZ oder Ort eingeben') {
    alert("Bitte geben Sie eine 5-stellige Postleitzahl oder einen Ort ein!");
    document.forms['hdlsuche']['qy'].focus();
    return false;
  }
  document.forms['hdlsuche']['qy'].blur();
  var callback = searchResults;
  d.getElementById('activity_indicator_hdlsuche').src = 'img/misc/activity_indicator.gif';
  d.getElementById('show_data').innerHTML='';
  myReq.sendXMLHttpRequest(0,'hdlsuche.asp',callback,'','q='+encodeURI(q));
  return false;
}
function searchResults(status,params,req) {
  if (!status) {
    if (params) {
      d.getElementById('activity_indicator_hdlsuche').src = 'img/misc/activity_indicator.gif';
      var callback = searchResults;
      myReq.sendXMLHttpRequest(0,'hdlsuche.asp?q='+params,callback,'','');
    }
    else {
      return false;
    }
  }
  else if (status == 1) {
    d.getElementById('activity_indicator_hdlsuche').src = 'img/misc/blank.gif';
    var response = req.responseText.split("\n");
    var sstring = response.shift();
    var tmp2 = sstring.split('|');
    var rc = parseInt(tmp2[0]);
    var message = tmp2[1];
    var message2 = tmp2[2];
    var markup = new Array();
    var data = new Array();
    if (rc==1) {
      markup.push('<h3>'+message+'<a class="close" onclick="resultClose()"></a></h3><div class="list"><table cellpadding="0" cellspacing="0">');
      for (var i=0;i<response.length;i++) {
        if (response[i]) {
          var items=response[i].split('|');
          var km='';
          if (items[9]>0) km='ca. '+items[9]+' km';
           markup.push('<tr class="tr_blur" onmouseover="this.className=\'tr_hover\'" onmouseout="this.className=\'tr_blur\'" onclick="showData(\''+items[0]+'\',\'\');return false"><td class="hdl">'+items[1]+'<br />'+items[2]+'<br />'+items[3]+' '+items[4]+'</td><td class="entf">'+km+'</td></tr>');
           data.push('<div id="d'+items[0]+'"><strong>'+items[1]+'</strong><br />'+items[2]+'<br />'+items[3]+' '+items[4]+'<br /><a href="http://'+items[8]+'/impressum.asp"><strong>Impressum</strong></a></div>');
        }
      }
      markup.push('</table></div>');
      d.getElementById('result').innerHTML = markup.join("\n");
      d.getElementById('result').style.display='block';
      d.getElementById('data').innerHTML = data.join("\n");
    }
    else if (rc==2) {
      markup.push('<h3>'+message+'<a class="close" onclick="resultClose()"></a></h3><div class="list"><table cellpadding="0" cellspacing="0">');
      markup.push('<tr class="tr_head"><td><strong>PLZ</strong></td><td><strong>Ort</strong></td></tr>');
      for (var i=0;i<response.length;i++) {
        if (response[i]) {
          var items=response[i].split('|');
           markup.push('<tr class="tr_blur" onmouseover="this.className=\'tr_hover\'" onmouseout="this.className=\'tr_blur\'" onclick="searchResults(0,\''+items[0]+'\',\'\');return false"><td class="plz">'+items[1]+'</td><td class="ort">'+items[2]+'</td></tr>');
        }
      }
      markup.push('</table></div>');
      d.getElementById('result').innerHTML = markup.join("\n");
      d.getElementById('result').style.display='block';
    }
    else {
      alert(message+"\n\n"+message2);
      d.forms['hdlsuche']['qy'].focus();
    }
	}
	else if (status == 2) {
	  return false;
	}
	return false;
}

function CXMLHttpRequest() {
  this.XMLHttpTimeout = 5000;
  this.XMLHttpUserAgent = 'XMLHTTP/1.0';
  var XMLHttpStatus = new Array();
  var XMLHttpTimer = new Array();
  var XMLHttpFactories = [function () {return new XMLHttpRequest()},function () {return new ActiveXObject("Msxml2.XMLHTTP")},function () {return new ActiveXObject("Msxml3.XMLHTTP")},function () {return new ActiveXObject("Microsoft.XMLHTTP")}];
  this.sendXMLHttpRequest = function(rtype,url,callback,params,postdata) {
  	var req = createXMLHTTPObject();
  	if (!req) return;
  	if (!rtype) {
    	var requestID = unixTimestamp() + randomString(8);
    	XMLHttpStatus[requestID] = 0;
    	XMLHttpTimer[requestID] = setTimeout(
        function() {
          if(XMLHttpTimer[requestID])clearTimeout(XMLHttpTimer[requestID]);
          if (XMLHttpStatus[requestID] != 1) {
            this.XMLHttpStatus[requestID] = 2;
            callback(2,params,false);
          }
        },this.XMLHttpTimeout);
    }
  	var method = (postdata) ? "POST" : "GET";
  	if (url.match(/\?/))url+='&';else url+='?';
  	url += 'XMLHttpRequestID='+requestID;
  	if (!rtype)req.open(method,url,true);else req.open(method,url,false)
  	req.setRequestHeader('User-Agent',this.XMLHttpUserAgent);
  	if (postdata)
  		req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
  	if (!rtype) {
    	req.onreadystatechange = function () {
    		if (req.readyState != 4) return;
    		if (req.status != 200 && req.status != 304) {
    		  if (this.XMLHttpStatus[requestID] != 1) {
    		    this.XMLHttpStatus[requestID] = 2;
            callback(2,params,req);
          }
    			return;
    		}
    		if (XMLHttpStatus[requestID] != 2) {
    		  if(XMLHttpTimer[requestID])clearTimeout(XMLHttpTimer[requestID]);
    		  XMLHttpStatus[requestID] = 1;
    		  callback(1,params,req);
    		}
    	}
    	if (req.readyState == 4) return;
    	req.send(postdata);
    }
    else {
      req.send(postdata);
  	  callback(1,params,req);
    }
  }
  function createXMLHTTPObject() {
  	var xmlhttp = false;
  	for (var i=0;i<XMLHttpFactories.length;i++) {
  		try {
  			xmlhttp = XMLHttpFactories[i]();
  		}
  		catch (e) {
  			continue;
  		}
  		break;
  	}
  	return xmlhttp;
  }
  function unixTimestamp() {
    var jetzt = new Date();
    return jetzt.getTime();
  }
  function randomString(ln) {
    var chars = new Array();
    while(chars.length<ln){
      var num = Math.round(Math.random()*(122-48))+48;;
      if((num>47 && num<58) || (num>65 && num<91) || (num>96 && num<123)){
          chars.push(String.fromCharCode(num));
      }
    }
    return chars.join('');
  }
}


