


var ddTelesearch = new Class({
	
	initialize: function(searchFormId) {

		
		this.searchForm = $(searchFormId);
		this.searchFormId = searchFormId;
		if ($chk($('linkShowTelesearchForm'))) {
			$('linkShowTelesearchForm').addEvent('click', function() {
				this.searchForm.setStyle('display',(this.searchForm.getStyle('display')=='block'?'none':'block'));
			}.bind(this));			
		}

		$('telesearchSubmit').addEvent('click', function() {
			this.search();
		}.bind(this));
		
		$('closeTelesearchResult').addEvent('click', function() {
			this.close();
		}.bind(this));
		
		totalSize = $('topnav').getSize().y + $('header').getSize().y + $('startTeaser').getSize().y + $('main').getSize().y + $('footer').getSize().y + $('footer_logo').getSize().y;
		$('OverlayContainer').setStyle('height',totalSize);
				
	},
	
	search: function() {

		var searchRequest = new Request({
			'url': '/ajaxTelesearch.php',
			'onSuccess': function(responseText, responseXML) {
				var codeRes = responseText.match(/<code>([^<]*)<\/code>/);
				
				totalSize = $('topnav').getSize().y + $('header').getSize().y + $('startTeaser').getSize().y + $('main').getSize().y + $('footer').getSize().y + $('footer_logo').getSize().y;
				
				$('telesearchResultBG').setStyles({
					'display': 'block',
					'position': 'absolute',
					'z-index': '900',
					'left': '0px',
					'top': '0px',
					'width': '100%',
					'height': totalSize+'px',
					'background-color': '#000000',
					'opacity': '0'	
				});
				$('telesearchResultBG').addEvent('click', function() {
					this.close();
				}.bind(this));
				var fadeFx = new Fx.Tween($('telesearchResultBG'), {
					'property': 'opacity'
				});
				fadeFx.start(0, 0.5);				
				
				if (codeRes && parseInt(codeRes[1])==1) {
					
					var przRes = responseText.match(/<prz>([^<]+)<\/prz>/);
					var distRes = responseText.match(/<dist>([^<]+)<\/dist>/);
					var signal = parseInt(przRes[1]);
					var distance = parseInt(distRes[1]);
					
					
					
					$('telesearchSignal').set('html', String(signal));
					$('telesearchDistance').set('html', String(distance));
					if (signal<60) {
							
						$('telesearchResultCode1').setStyle('display','none');
						$('telesearchResultCode0').setStyle('display','none');
						$('telesearchResultCode2').setStyle('display','none');
						$('telesearchResultSignalLow').setStyle('display','block');
						$('telesearchResult').setStyle('width','700px');
						$('telesearchResult').setStyle('top','100px');						
						$('telesearchResult').setStyle('display','block');
						$('map_canvas2').setStyle('display','block');
						mapId = 'map_canvas2';
					}
					else {
						$('telesearchResultCode1').setStyle('display','block');
						$('telesearchResultCode0').setStyle('display','none');
						$('telesearchResultCode2').setStyle('display','none');
						$('telesearchResultSignalLow').setStyle('display','none');
						$('telesearchResult').setStyle('width','700px');
						$('telesearchResult').setStyle('top','100px');
						$('telesearchResult').setStyle('display','block');
						$('map_canvas').setStyle('display','block');
						mapId = 'map_canvas';
					}
					
					mainPos = $('main').getPosition();
					mainSize = $('main').getSize();
					resultSize = $('telesearchResult').getSize();
					
					$('telesearchResult').setStyle('left',String(parseInt((mainSize.x/2)-(resultSize.x/2)))+'px');
					$('telesearchResult').setStyle('top',String(-100+mainPos.y)+'px');
					

					var centerLatRes = responseText.match(/<centerLat>([^<]+)<\/centerLat>/);					
					var centerLonRes = responseText.match(/<centerLon>([^<]+)<\/centerLon>/);
					var posLatRes = responseText.match(/<posLat>([^<]+)<\/posLat>/);
					var posLonRes = responseText.match(/<posLon>([^<]+)<\/posLon>/);
					
					this.initializeMap(
						mapId,
						parseFloat(centerLatRes[1]),
						parseFloat(centerLonRes[1]),
						parseFloat(posLatRes[1]),
						parseFloat(posLonRes[1])
						);						
					

					
				}
				else if (!codeRes || (codeRes && parseInt(codeRes[1])==0)) {
					$('telesearchResultCode0').setStyle('display','block');
					$('telesearchResultCode1').setStyle('display','none');
					$('telesearchResultCode2').setStyle('display','none');
					$('telesearchResultSignalLow').setStyle('display','none');
					$('telesearchResult').setStyle('width','700px');
					$('telesearchResult').setStyle('top','100px');
					
					$('telesearchResult').setStyle('display','block');
					mainPos = $('main').getPosition();
					$('telesearchResult').setStyle('left',String(200+mainPos.x)+'px');
					$('telesearchResult').setStyle('top',String(100+mainPos.y)+'px');					
				}
				else if (codeRes && parseInt(codeRes[1])==2) {
					
					$('telesearchResultCode2').setStyle('display','block');
					$('telesearchResultCode1').setStyle('display','none');
					$('telesearchResultCode0').setStyle('display','none');
					$('telesearchResultSignalLow').setStyle('display','none');
					
					$('telesearchResult').setStyle('width','700px');
					$('telesearchResult').setStyle('top','100px');
					$('telesearchResult').setStyle('display','block');
					mainPos = $('main').getPosition();
					$('telesearchResult').setStyle('left',String(200+mainPos.x)+'px');
					$('telesearchResult').setStyle('top',String(100+mainPos.y)+'px');					
				}
				else {
					alert('invalid code');
				}

			}.bind(this),
			'onFailure': function(xhr) {
				alert('fehler');
			}
		}).get({
			'q1': $('telesearch-q1').value,	
			'q2': $('telesearch-q2').value	
		});
		
	},

	
	close: function() {
		
		$('telesearchResult').setStyle('display','none');
		var fadeFx = new Fx.Tween($('telesearchResultBG'), {
			'property': 'opacity',
			'complete': function() {
				this.setStyle('display','none');
			}.bind($('telesearchResultBG'))
		});
		fadeFx.start(0.5, 0);
		
	},
	
	initializeMap: function (mapId, centerLat, centerLon, posLat, posLon) {
      if (GBrowserIsCompatible()) {
        var map = new GMap2($(mapId));
	map.setMapType(G_SATELLITE_MAP);
        map.setCenter(new GLatLng(centerLat, centerLon), 13);
        map.setUIToDefault();
	var masticon = new GIcon(G_DEFAULT_ICON, "mast.png");
	var homeicon = new GIcon(G_DEFAULT_ICON, "home.png");
	var latlng = new Array();
	latlng.push( new GLatLng(posLat, posLon) );
	latlng.push( new GLatLng(centerLat, centerLon) );

	var line = new GPolyline([latlng[0], latlng[1]], "#ff0000", 5);
	var latlngbounds = new GLatLngBounds( );
  	for ( var i = 0; i < latlng.length; i++ )
  	{
		if(i==1) 
	 		map.addOverlay(new GMarker(latlng[i], {icon:masticon}));
		if(i==0)
			map.addOverlay(new GMarker(latlng[i], {icon:homeicon}));
   		latlngbounds.extend(latlng[i]);
 	}
	map.addOverlay(line);
 	map.setCenter( latlngbounds.getCenter( ), map.getBoundsZoomLevel( latlngbounds ) );
		
      }
    }
	
});

window.addEvent('domready', initTelesearch);
function initTelesearch() {
	telesearch = new ddTelesearch('telesearchForm');
	
}
