var picData = '';
var map;
var directionsPanel;
var directions;
var gmarkers = [];
var adressArr = new Array();

$(document).ready(function(){
	$('#searchPlz, #searchCity, #searchName').keyup(function() 
	{
		var searchPlz = $('#searchPlz').val();
		var searchCity = $('#searchCity').val();
		var searchName = $('#searchName').val();
		var searchType = $('#searchType').val();		

		delay(function(){
			liveSearchShowResult(searchPlz, searchCity, searchName, searchType);
			$('p.count').text('');
		}, 500 );
	});	
	
	$('#jumpTo').click(function(){
		$('#searchResult div').remove();
		$('#searchResult h2').hide();		
		$('#dealers').fadeIn();
		$('p.count').text('').hide();
		hideMarker();
		showMarker();		
		
		delay(function(){
			$('body').scrollTo({ top:890, left:0}, 800);
		}, 500 );		
	});
	
	/* HOVER EFFEKT */
	$('.imgUpload').hover(function(){
		//$(this).children('.imgUpload .picDetails').show();
		$(this).children('img.pic').animate({
			height: '207px',
			width: '300px'
		}, 200, function() {
			$(this).parent().children('.imgUpload .info').show();
		}).css('z-index', 10);
		
	
	},
	function(){
		$(this).children('img.pic').animate({
			height: '100px',
			width: '145px'
		}, 100, function() {
			$(this).css('z-index', 0);			
		});	
		
		$('p.info').hide();
		$('.picDetails').hide();
	});
	
	$('p.info').toggle(function(){
		$(this).parent().children('.picDetails').show();
	},
	function(){
		$('.picDetails').hide();
	});
	
/*
	$(".unchecked").click(
		function()
		{
			if($(this).hasClass('checked'))
			{
				$(this).removeClass('checked');
				$(this).addClass('unchecked');
			}
			else
			{
				$(this).addClass('checked');
				$(this).removeClass('unchecked');
			}
		}
	);	
*/
	$('.pressMore').click(function(){
		parentEle = $(this).parent()
		h = $(this).parent().children('.press_title').height();
		parentEle.animate({'height' : h + 80});
		
		parentEle.children('.pressMore').hide();
		parentEle.children('.pressFew').show();		
	});
	
	$('.pressFew').click(function(){
		parentEle = $(this).parent()
		h = $(this).parent().children('.press_title').height();
		parentEle.animate({'height' : 63});
		
		parentEle.children('.pressMore').show();
		parentEle.children('.pressFew').hide();		
	});	
});

//Livesuche
function liveSearchShowResult(searchPlz, searchCity, searchName, searchType)
{
	if(!searchPlz == 0 || !searchCity == 0 || !searchName == 0)
	{
		$('#dealers').hide();
		$('#searchResult div').remove();
		
		$.post("/php/ajax.livesearch.php", {searchPlz : searchPlz, searchCity: searchCity, searchName: searchName, kind : searchType},
		function(data)
		{
			//console.log(data);
			var i = 0;
			var noResult = false;
			$('#searchResult h2').fadeIn();
			$.each(data, function() 
			{
				if(data[i]['type'] == 'Dealer')
				{
					data[i]['type'] = 'Händler';
				}
				else
				{
					data[i]['type'] = data[i]['type'];					
				}
				
				if(data[i]['result'] == 0)
				{
					noResult = true;
				}
				
				$('#searchResult').append('<div id="search_' + data[i]['id'] + '" class="dealer" style="display:none"></div>');
				if(data[i]['picPath'] == '')
				{				
					$('#search_' + data[i]['id']).append(
						'<h3>Händlerinformationen</h3>' +
						'<div class="left">' +
							'<p class="bold">' + data[i]['type'] + ': ' + data[i]['company'] + '</p>' + 
							'<p>' + data[i]['street'] + ' ' + data[i]['streetNo'] + '<br />' +
							data[i]['plz'] + ' ' + data[i]['city'] + '<br />' + 
							data[i]['phone'] + '<br />' + 
							'<a href="http://' + data[i]['web'] + '">' + data[i]['web'] + '</a><br />' + 					
							'<p>Ihr <strong>DAUERHOLZ</strong>-Experte: ' + data[i]['personal'] + '</p>' +
						'</div>' +
						'<div class="right">' +					
							'<a href="javascript://" onclick="convertAndJumpToMarker(\'' + data[i]['street'] + ' ' + data[i]['streetNo'] + ', ' + data[i]['city'] + '\');"><img src="http://www.dauerholz.de/wp-content/themes/dauerholz/img/chargeRoute.jpg" /></a>' +
						'</div>' +
						'<div class="clear"></div>'					
					);
				}
				else
				{
					$('#search_' + data[i]['id']).append(
						'<h3>Händlerinformationen</h3>' +
						'<div class="left">' +
							'<p class="bold">' + data[i]['type'] + ': ' + data[i]['company'] + '</p>' + 
							'<p>' + data[i]['street'] + ' ' + data[i]['streetNo'] + '<br />' +
							data[i]['plz'] + ' ' + data[i]['city'] + '<br />' + 
							data[i]['phone'] + '<br />' + 
							'<a href="http://' + data[i]['web'] + '">' + data[i]['web'] + '</a><br />' + 					
							'<p>Ihr <strong>DAUERHOLZ</strong>-Experte: ' + data[i]['personal'] + '</p>' +
						'</div>' +
						'<div class="right">' +					
							'<img src="http://haendlersuche.dauerholz.de/dealerpics/' + data[i]['picPath'] + '.jpg" />' +
							'<a href="javascript://" onclick="convertAndJumpToMarker(\'' + data[i]['street'] + ' ' + data[i]['streetNo'] + ', ' + data[i]['city'] + '\');"><img src="http://www.dauerholz.de/wp-content/themes/dauerholz/img/chargeRoute.jpg" /></a>' +
						'</div>' +
						'<div class="clear"></div>'					
					);					
				}
				i++;

			});
			
			if(noResult == true)
			{
				$('p.count').append('Es wurde leider kein Ergebnis gefunden, die zu Ihren Eingaben passen.<br /> Bitte präzisieren Sie Ihre Suche und versuchen Sie es erneut. <br /> Es gibt insgesamt ' + i + ' <strong>DAUERHOLZ</strong>-Händler!');
				initialize(noResult); 				
			}
			else
			{
				$('p.count').append(i + ' <strong>DAUERHOLZ</strong>-Händler gefunden!');
				setNewMarker(data);				
			}
			
			$('p.count').fadeIn();
			$('.dealer').fadeIn();
			hideMarker();

			hideRouteCharge();
		}, "json");
		
		delay(function(){
//			$('body').scrollTo(700, 500);
		}, 1200 );		
	} 
	else 
	{
		$('#searchResult div').remove();
		$('#searchResult h2').hide();		
		$('#dealers').fadeIn();
		$('p.count').text('').hide();
		hideMarker();
		showMarker();
	}
}

//Google Maps API einbindung
function initialize(noResult) 
{
	if(GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
		var mapControl = new GMapTypeControl();
		map.addControl(mapControl);
		map.addControl(new GLargeMapControl());
		if(!noResult){
			map.setCenter(new GLatLng(53.553813, 9.991586), 9);			
		}
		else
		{
			map.setCenter(new GLatLng(51.133333, 10.416667), 5);			
		}

		geocoder = new GClientGeocoder();
		
		for(var i = 0; i < adressArr.length; i++)
		{

			//Adresse umwandeln in Geodaten + Markierfunktion			
			function geoChanger(i) 
			{
				geocoder.getLocations('"' + adressArr[i]["address"] + '"', function(response) 
				{
					addAddressToMap(adressArr[i], response);
				});
			}
			
			geoChanger(i);		
			
		}
	}
}

//Fügt Marker auf Karte ein
function addAddressToMap(descriptionString, response) 
{	
	place = response.Placemark[0];
	point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
	marker = createMarker(
		point,
		'<strong>' + descriptionString["company"] + '</strong>' + 
		'<p>' + descriptionString["street"] + '</p>' +
		'<p>' + descriptionString["city"] + '</p>'	+
		'<p>' + descriptionString["phone"] + '</p>'	+
		'<p><a href="http://' + descriptionString["web"] + '" target="_blank">' + descriptionString["web"] + '</a></p><br />' + 
		'<p><a href="javascript://" onclick="convertAndJumpToMarker(\'' + descriptionString["street"] + ', ' + descriptionString["city"] + '\');"><img src="http://www.dauerholz.de/wp-content/themes/dauerholz/img/chargeRoute.jpg" /></a></p>'
	)
	map.addOverlay(marker);	
}	    

//Geodaten in Adressdaten umwandeln
function convertAndJumpToMarker(data) {	
	$('#routeInputs').css('height', '128px');
	geocoder.getLocations('"' + data + '"', jumpToMarker);
	$('#to').val(data);
	$('body').scrollTo({ top:700, left:0}, 500);
	
	delay(function(){
		$('#routeLayer').slideDown();	
	}, 500 ); 

	directions.clear();
}

//Karte neu ausrichten
function jumpToMarker(data)
{
//	console.log(data);
	place = data.Placemark[0];
	point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);	
	map.panTo(point);	
	map.setZoom(15);
//	map.zoomIn();
}

function hideMarker()
{
	for (var i=0; i<gmarkers.length; i++) {
		gmarkers[i].hide();
	}	
}

function showMarker()
{
	for (var i=0; i<gmarkers.length; i++) {
		gmarkers[i].show();
	}	
}

function setNewMarker(data)
{
	//console.log(data);

	geocoder = new GClientGeocoder();
	
	for(var i = 0; i < data.length; i++)
	{
		data[i]["address"] = data[i]["street"] + ' ' + data[i]["streetNo"] + ', ' + data[i]["city"];

		//Adresse umwandeln in Geodaten + Markierfunktion			
		function geoChanger(i) 
		{
			geocoder.getLocations('"' + data[i]["address"] + '"', function(response) 
			{
				addAddressToMap(data[i], response);
			});
		}
		
		geoChanger(i);		
		
	}

	function geoChanger2() 
	{
		geocoder.getLocations('"' + data[0]['address'] + '"', function(response) 
		{
			place = response.Placemark[0];
			point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);	
			map.setCenter(point, 9);
		});
	}
	
	geoChanger2();	
}


//Funktion um Route zu berechnen
function chargeRoute()
{
	//Formvariablen
	var from = $('#from').val();
	var to = $('#to').val();
	$('#route').html('');
// 	hideRouteCharge();
	
	//Genieriert Routenelemente
	directionsPanel = document.getElementById("route");
	directions = new GDirections(map, directionsPanel);
//	directions.clear();
  	directions.load("from: " + from + " to: " + to);	
	$('#route').slideDown();  	
	
	delay(function(){
		$('#routeInputs').css('height', $('#route').height());
	}, 500 );  	
	  	
}

//Funktion um Marker zu generiern
function createMarker(point,html) 
{
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() 
	{
		marker.openInfoWindowHtml(html);
	});
	gmarkers.push(marker);
	return marker;
}

function scrollToResults()
{
	$('body').scrollTo({ top:1150, left:0}, 500);	
}

function hideRouteCharge()
{
	$('#routeLayer').slideUp();
	$('#route').html('');
	$('#routeInputs').css('height', '128px');
	directions.clear();
}

function resetPos()
{
	map.setCenter(new GLatLng(51.133333, 10.416667), 5);	
}

//Delayfunktion
var delay = (function(){
  var timer = 0;
  return function(callback, ms){
    clearTimeout (timer);
    timer = setTimeout(callback, ms);
  };
})();

//Druckfunktion
function printContent(id){
	str=document.getElementById(id).innerHTML
	newwin=window.open('','printwin','left=100,top=100,width=400,height=400')
	newwin.document.write('<HTML>\n<HEAD>\n')
	newwin.document.write('<TITLE>Print Page</TITLE>\n')
	newwin.document.write('<script>\n')
	newwin.document.write('function chkstate(){\n')
	newwin.document.write('if(document.readyState=="complete"){\n')
	newwin.document.write('window.close()\n')
	newwin.document.write('}\n')
	newwin.document.write('else{\n')
	newwin.document.write('setTimeout("chkstate()",2000)\n')
	newwin.document.write('}\n')
	newwin.document.write('}\n')
	newwin.document.write('function print_win(){\n')
	newwin.document.write('window.print();\n')
	newwin.document.write('chkstate();\n')
	newwin.document.write('}\n')
	newwin.document.write('<\/script>\n')
	newwin.document.write('</HEAD>\n')
	newwin.document.write('<BODY onload="print_win()">\n')
	newwin.document.write(str)
	newwin.document.write('</BODY>\n')
	newwin.document.write('</HTML>\n')
	newwin.document.close()
}


