// some vars
var eingabetext = "";
var auswahlarray = new Array();
var auswahlarray2 = new Array();
var goon = false;
var rentdays = 0;
var fid = '';
var win = '';
var win_no = '';
var zusatzinfo = '';

function senduplz() {
	if($('HVZ_UPLZ').value == '') {
		alert('Bitte geben Sie die Postleitzahl an. Danke!');
		$('HVZ_UPLZ').focus();
	} else {
		gPLZ = $('HVZ_UPLZ').value + ' ';
		sendhvz();
	}
}
// some functions
function sendhvz() {
	if($('HVZ_STRASSE').value == '') {
		alert('Bitte geben Sie eine Strasse an.');
		$('HVZ_STRASSE').focus();
		return;
	}
	if($('HVZ_HAUSNUMMER').value == '') {
		alert('Bitte geben Sie eine Hausnummer an.');
		$('HVZ_HAUSNUMMER').focus();
		return;
	}
	if($('HVZ_DATUM_1').value == '') {
		alert('Bitte geben Sie ein Anfangsdatum an.');
		$('HVZ_DATUM_1').focus();
		return;
	}
	tmp1a = $('HVZ_DATUM_1').value.split(".");
	var zeit1a = new Date(tmp1a[2], tmp1a[1]-1, tmp1a[0]);
	var jetzta = new Date();
	if(Date.parse(zeit1a) < jetzta.getTime()) {
		alert('Das Anfangsdatum liegt in der Vergangenheit.');
		$('HVZ_DATUM_1').focus();
		return;
	}
	if($('HVZ_DATUM_2').value == '') {
		alert('Bitte geben Sie ein Enddatum an.');
		$('HVZ_DATUM_2').focus();
		return;
	}
	// if(gPLZ == '') {
	// 	alert("Wir konnten leider keine Postleitzahl finden.\nBitte geben Sie diese manuell an.");
	// 	$('HVZ_ORT').style.width = "150px";
	// 	
	// 	$('HVZ_PLZ').innerHTML = '<input id="HVZ_UPLZ" style="width:45px;background-color:#FFFFFF;" type="text" name="" value="" onblur="senduplz();" onfocus="chgcolor(HVZ_UPLZ);" />&nbsp;';
	// 	$('HVZ_PLZ').style.visibility = "visible";
	// 	$('HVZ_PLZ').style.display = "block";
	// 	$('HVZ_UPLZ').focus();
	// 	
	// 	// makeEffectHVZDetails('HVZ_PLZ', 'opacity', 'HVZ_PLZ');
	// 	return;
	// }
	if($('HVZGENEHMIGUNG').checked == false) {
		var genehmigung = 0;
	} else if($('HVZGENEHMIGUNG').checked == true) {
		var genehmigung = 1;
	}
	
	var postString = Object.toQueryString({
		action: 1,
		ort: $('HVZ_ORT').value,
		strasse: $('HVZ_STRASSE').value,
		hausnummer: $('HVZ_HAUSNUMMER').value,
		datum_von: $('HVZ_DATUM_1').value,
		datum_bis: $('HVZ_DATUM_2').value,
		uhr_von: $('HVZ_ZEIT_1').value,
		uhr_bis: $('HVZ_ZEIT_2').value,
		genehmigung: genehmigung,
		hvz_laenge: $('HVZ_LAENGE').options[$('HVZ_LAENGE').selectedIndex].value,
		vkpreis: hvzpreis,
		gewinn: win,
		gewinn_ohne: win_no,
		kosten_gen: pstadt,
		firmen_id: fid
	});
	
	var sendhvz = new Ajax('./ajax/hvz_suchen.php', {
		postBody: postString,
		onComplete: function(resp) {
			if(resp == 1) {
				getGoodResp();
			} else if(resp == 2) {
				getBadResp();
			} else {
				// login
				$('stage').innerHTML = resp;
				makeEffect('stage', 'opacity');
				return;
			}
		}
	});
	if($('HVZ_DATUM_1').value == $('HVZ_DATUM_2').value) {
		datum = $('HVZ_DATUM_1').value;
	} else {
		datum = datum = $('HVZ_DATUM_1').value + ' - ' + $('HVZ_DATUM_2').value;
	}
	if(confirm('Sie möchten folgende Halteverbotszone buchen:\n\n'+ gPLZ + $('HVZ_ORT').value + ', ' + $('HVZ_STRASSE').value + ' ' + $('HVZ_HAUSNUMMER').value + '\n\nDatum: ' + datum + '\n\nUhrzeit: '+$('HVZ_ZEIT_1').value+ '-'+$('HVZ_ZEIT_2').value+'\n\nsind Ihre Angaben korrekt?')) {
		showgoogle();
		sendhvz.request();
	}
}
function getBadResp() {
	$('bindex').innerHTML = ('Ihre Buchung ist fehlgeschlagen, bitte versuchen Sie es noch einmal.<br /><br /><a href="./umzug_halteverbot.html" name="" title="">nochmal!</a>');
	finishResp();
}
function getGoodResp() {
	var postString1 = Object.toQueryString({
		action: 'goodresp'
	});
	
	var getGood = new Ajax('./ajax/hvz_suchen.php', {
		postBody: postString1,
		onComplete: function(resp1) {
			$('bindex').innerHTML = resp1;
			$('userhvz').style.visibility = "hidden";
			$('userhvz').style.display = "none";
			finishResp();
		}
	});
	getGood.request();
}
function finishResp() {
	makeEffect('testing', 'opacity');
	makeEffect('bindex', 'opacity');
	$('testing').style.display = "none";
}
function showgoogle() {
	$('testing').innerHTML = ('<div style="border:solid black 1px;background-color:#FF9F00;font-size:18px;padding:12px;">..:: Ihre Buchung wird bearbeitet ::..</div>');
	$('testing').style.visibility = "hidden";
	$('testing').style.display = "inline";
	makeEffect('testing', 'opacity');
}
function preisanzeige() {
	if($('HVZGENEHMIGUNG').checked == false) {
		hvzpreis = Number(hvzpreis) - Number(pstadt);
		output = '<div style="float:left;font-size: 12px;">Halteverbot:</div><div style="text-align:right;">' + kaufm(Number(hvzpreis)) + ' Euro </div>';
		output += '<div><hr /></div>';
		output += '<div style="float:left;font-size: 14px;">Gesamt:</div><div style="text-align:right;">' + kaufm(Number(hvzpreis)) + ' Euro </div>';
		output += '<div style="float:left;font-size: 14px;">&nbsp;</div><div style="text-align:right;font-size: 10px;">(exkl. MWSt. ' + kaufm(Number(hvzpreis)/1.19) + ') Euro </div>';
	} else {
		hvzpreis = Number(hvzpreis);
		output = '<div style="float:left;font-size: 12px;">Halteverbot:</div><div style="text-align:right;">' + kaufm(Number(hvzpreis) - Number(pstadt)) + ' Euro </div>';
		output += '<div style="float:left;font-size: 12px;">Genehmigung:</div><div style="text-align:right;">' + kaufm(Number(pstadt)) + ' Euro </div>';
		output += '<div><hr /></div>';
		output += '<div style="float:left;font-size: 14px;">Gesamt:</div><div style="text-align:right;">' + kaufm(Number(hvzpreis)) + ' Euro </div>';
		output += '<div style="float:left;font-size: 14px;">&nbsp;</div><div style="text-align:right;font-size: 10px;">(exkl. MWSt. ' + kaufm(Number(hvzpreis)/1.19) + ') Euro </div>';
	}
	$('HVZ_PREIS').innerHTML = output;
	if(zusatzinfo != '') {
		$('HINT').innerHTML = zusatzinfo;
	} else {
		$('HINT').innerHTML = '';
	}
	makeEffect('HVZ_PREIS', 'opacity');
}
function copydate() {
	$('HVZ_DATUM_2').value = $('HVZ_DATUM_1').value;
}
function tage() {
	if( ($('HVZ_DATUM_1').value != '') && ($('HVZ_DATUM_2').value != '') ) {
		if(check_date($('HVZ_DATUM_1'))) {
			if(check_date($('HVZ_DATUM_2'))) {
				tmp1 = $('HVZ_DATUM_1').value.split(".");
				tmp2 = $('HVZ_DATUM_2').value.split(".");
				var zeit1 = new Date(tmp1[2], tmp1[1]-1, tmp1[0]);
				var zeit2 = new Date(tmp2[2], tmp2[1]-1, tmp2[0]);
				var jetzt = new Date();
				
				if(zeit1 > zeit2) {
					alert('Bitte geben Sie das Enddatum nach oder gleich dem Anfangsdatum ein.');
				} else if(Date.parse(zeit1) < jetzt.getTime()) {
					alert('Das Anfangsdatum liegt in der Vergangenheit.');
				} else {
					rentdays = (Date.parse(zeit2)-Date.parse(zeit1))/1000/86400;
				}
			}
		}
	} else {
		rentdays = 0;
	}
}
function hvzdetails() {
	$('map').style.display = "none";
	$('HVZDETAILS').style.display = "block";
	makeEffectHVZDetails('HVZDETAILS', 'opacity', 'HVZ_STRASSE');
	chgcolor('HVZ_ORT',1);
}
function getprice() {
	if($('HVZ_ORT').value != '') {
		tage();
		var postString = 'ort=' + $('HVZ_ORT').value + '&action=phvz&laenge=' + $('HVZ_LAENGE').options[$('HVZ_LAENGE').selectedIndex].value + '&tag=' + rentdays;
		var getPrice = new Ajax('./ajax/hvz_suchen.php', {
			postBody: postString,
			onComplete: function(resp) {
				if(resp == 'FALSE') {
					alert('Fehler 1, sorry!');
				} else {
					tmp11 = resp.split("#");
					hvzpreis = tmp11[0];
					pstadt = tmp11[1];
					fid = tmp11[2];
					win = tmp11[3];
					win_no = tmp11[4];
					zusatzinfo = tmp11[5];
										
					$('auswahlbox').style.visibility = "hidden";
					$('auswahlbox').style.display = "none";
					
					$('HVZ_ORT').style.backgroundColor = "#FFFFFF";
					
					preisanzeige();
					
					if($('HVZDETAILS').style.visibility == "hidden") {
						hvzdetails();
					}
				}
			}
		});
		getPrice.request();
	}
}
function meinMausover( idx, focuson ) {
	if( (auswahlarray2[idx] != null) && (auswahlarray2[idx] != "") ) {
		var eingabefeld = $("HVZ_ORT");
		var start = eingabetext.length;
		var laenge = auswahlarray2[idx].length;
		eingabefeld.value = auswahlarray2[idx];
		if( eingabefeld.createTextRange ) {
			var Auswahl = eingabefeld.createTextRange();
			Auswahl.moveStart( "character", start );
			Auswahl.moveEnd( "character", laenge - start );
			Auswahl.select();
		} else if( eingabefeld.setSelectionRange ) {
			eingabefeld.setSelectionRange( start, laenge );
		}
		if(!focuson) {
			eingabefeld.focus();
		}
	}
}
function meineCallbackFkt(resp) {
	var auswahlinhalt = "";
	var text = resp;
	if( text != "" ) {
		auswahlarray = text.split(";");
		auswahlarray.each(function(item, index){
			tmp = item.split("#");
			auswahlarray2[tmp[0]] = tmp[1];
			auswahlinhalt += '<div style="border-top:grey solid thin;cursor:pointer;" onmouseover="this.style.backgroundColor=\'#C2C2C2\';" id="auswahlzeile" onmouseout="this.style.backgroundColor=\'#FFFFFF\'" onclick="getprice(' + tmp[0] + ');">&nbsp;<a href="javascript:getprice(' + tmp[0] + ')" id="' + tmp[0] + '" class="auswahlzeile" onmouseover="meinMausover('+tmp[0]+')" onfocus="meinMausover('+tmp[0]+',1)">'+tmp[1]+'</a></div>';
		});
		$('auswahlbox').innerHTML = auswahlinhalt;
	}
	if( auswahlinhalt != "" ) {
		$('auswahlbox').style.display = "block";
		$('auswahlbox').style.visibility = "visible";
	} else {
		$('auswahlbox').style.visibility = "hidden";
	}
	if(goon == true) {
		auswahlarray2.each(function(item, index){
			getprice(index);
		});
		goon = false;
	}
}
function meinAjaxAufruf( eingabe ) {
	if(eingabe != '') {
		
		$('auswahlbox').innerHTML = '&nbsp;<img src="./tpl/nicki/img/waiting.gif" border="0" alt="warten" /> Städte werden geladen ...';
		$('auswahlbox').style.visibility = "visible";
		
		$('HVZ_PREIS').style.visibility = "hidden";
		$('HVZDETAILS').style.visibility = "hidden";
		
		eingabetext = eingabe;
		
		var postString = 'q=' + eingabe;
		var searchHvzOrt = new Ajax('./ajax/hvz_suchen.php', {
			postBody: postString,
			onComplete: function(resp) {
				meineCallbackFkt(resp);
			}
		});
		searchHvzOrt.request();
	}
}

// google kram
var map1 = null;
var geocoder = null;
var gPLZ = null;

function load() {
	$('map').style.display = "block";
  	if(GBrowserIsCompatible()) {
		map1 = new GMap2($("map"));
		map1.setCenter(new GLatLng(51.6419, 8.1419), 5);
		map1.addControl(new GSmallMapControl());
		map1.setMapType();  //G_HYBRID_MAP 
		geocoder = new GClientGeocoder;
		geocoder.setBaseCountryCode("DE");
		geocoder.getLocations($('HVZ_ORT').value+', '+$('HVZ_STRASSE').value+' '+$('HVZ_HAUSNUMMER').value, addAddressToMap);
  	}
}
function showAddress1(address) {
	if(geocoder) {
		geocoder.getLatLng(
			address,
			function(point) {
				if(!point) {
					alert("Wir konnten Ihre Adresse (" + address + ") leider nicht finden.");
				} else {
					map1.setCenter(point, 16);
					var marker = new GMarker(point);
					map1.addOverlay(marker);
				}
			}
		);
	}
	// getGPLZ(address);
}
function addAddressToMap(response) {
	gPLZ = '';
	
	map1.clearOverlays();
	if (!response || response.Status.code != 200) {
		alert("Wir konnten Ihre Adresse (" + address + ") leider nicht finden.");
	} else {
		place = response.Placemark[0];
		point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
		map1.setCenter(point, 16);
		
		marker = new GMarker(point);
		map1.addOverlay(marker);
		
		// marker.openInfoWindowHtml(place.address + '<br>' + '<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode);
		if(place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.DependentLocality.PostalCode.PostalCodeNumber != '') {
			gPLZ = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.DependentLocality.PostalCode.PostalCodeNumber + ' ';
		} else if(place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.DependentLocality.Thoroughfare.PostalCode.PostalCodeNumber != '')  {
			gPLZ = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.DependentLocality.Thoroughfare.PostalCode.PostalCodeNumber + ' ';
		} else if(place.AddressDetails.Country.AdministrativeArea.Locality.DependentLocality.PostalCode.PostalCodeNumber != '')  {
			gPLZ = place.AddressDetails.Country.AdministrativeArea.Locality.DependentLocality.PostalCode.PostalCodeNumber + ' ';
		} else if(place.AddressDetails.Country.Locality.PostalCode.PostalCodeNumber != '')  {
			gPLZ = place.AddressDetails.Country.Locality.PostalCode.PostalCodeNumber + ' ';
		} else if(place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber != '') {
			gPLZ = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber + ' ';
		} else {
			gPLZ = '';
		}
	}
}

// multi functions
function kaufm(x) {
	var k = (Math.round(x * 100) / 100).toString();
	k += (k.indexOf('.') == -1)? '.00' : '00';
	var p = k.indexOf('.'), m = k.indexOf('-.');
	var f = (p == 0 || m == 0)? '0,' : ',';
	return k.substring(0, p) + f + k.substring(p+1, p+3);
}
function check_date(datefield) {
	var date_array = datefield.value.split('.');
	var day = date_array[0];

	var month = date_array[1] - 1;
	var year = date_array[2];
	   
	source_date = new Date(year,month,day);
   
	if(year != source_date.getFullYear()) {
		alert('Das Datum ist nicht gültig!');
		return false;
	}
   
	if(month != source_date.getMonth()) {
		alert('Der Datum ist nicht gültig!');
		return false;
	}
	if(day != source_date.getDate()) {
		alert('Der Datum ist nicht gültig!');
		return false;
	}
	return true;
}
function makeEffect(what, which) {
	var myFx = new Fx.Style(what, which).custom(0,1);
}
function makeEffectHVZDetails(what, which, focus) {
	var myFx = new Fx.Style(what, which, {
		duration: 500,
		onComplete: function() {
			$(focus).focus();
		}
	}).custom(0,1);
}
function chgcolor(feldname,ind) {
	if(ind == 1) {
		$(feldname).style.backgroundColor = "#FFFFFF";
	} else if(ind == 2) {
		$(feldname).style.backgroundColor = "#CCCCCC";
	} else {
		$(feldname).style.backgroundColor = "#FF9F00";
	}
}
// start here
Window.onDomReady(function(){
	$('HVZ_ORT').setAttribute("autocomplete", "off");
	if($('HVZ_ORT').value != '') {
		getprice($('HVZ_ORT').value);
	} else {
		$('HVZ_ORT').focus();
	}
});
