// JavaScript Document

/***********************************************/
/** dietzhilfe.com - Internetportal			  **/
/** usr.js									  **/
/** Version: 1.0							  **/
/** Date: 06.03.2008						  **/
/** Copyright (c) 2008 Dr. Dietz Hilfen GmbH  **/
/** Author: Martin Soisch			    	  **/
/** email: soisch@dietzhilfe.com			  **/
/***********************************************/
var map = null;
var geocoder = null;
var addresses = null;
var XKOORD = null;
var YKOORD = null;
function goo_initialize() {
	if($('addresses').childNodes.length>0){
		var vendorID = document.getElementsByTagName('address').item(0).getAttribute('vendorid');
		var company = document.getElementsByTagName('address').item(0).getAttribute('company');
		var addr = document.getElementsByTagName('address').item(0).getAttribute('addr');
		var nameField = document.getElementById('nameField');
		var addressField = document.getElementById('addressField');
		var output = document.getElementById('output');
		var addressesLength = document.getElementById('addresses').childNodes.length;
	
	  if (GBrowserIsCompatible()) {
	  	nameField.innerHTML = company+" (1 von "+addressesLength+")";
	  	addressField.value = addr;
	  	// define the crosshair tile layer and its required functions 
	        var crossLayer = new GTileLayer(new GCopyrightCollection(""), 0, 15); 
	        crossLayer.getTileUrl =  function(tile, zoom) { 
	          return "./include/tile_crosshairs.png"; 
	        } 
	        crossLayer.isPng = function() {return true;} 
	 
	        // Create a new map type incorporating the tile layer 
	        var layerTerCross = [ G_PHYSICAL_MAP.getTileLayers()[0], 
	                              crossLayer ]; 
	        var mtTerCross = new GMapType(layerTerCross, 
	                                      G_PHYSICAL_MAP.getProjection(), "Ter+"); 
	  	
	    map = new GMap2(document.getElementById("map_canvas"));
	    map.addMapType(G_PHYSICAL_MAP); 
	    map.addMapType(mtTerCross); 
	    map.setCenter(new GLatLng(49.232797, 7.0441739), 13);
	    map.addControl(new GLargeMapControl());
	    
	    var mapControl = new GHierarchicalMapTypeControl(); 
	    
	     // Set up map type menu relationships 
	        mapControl.clearRelationships(); 
	        mapControl.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, "Labels", false); 
	        mapControl.addRelationship(G_PHYSICAL_MAP, mtTerCross, "Crosshairs"); 
	  
	        // Add control after you've specified the relationships 
	        map.addControl(mapControl); 
	        
	        
	    geocoder = new GClientGeocoder();
	  }
	} else {
		var nameField = document.getElementById('nameField');
		nameField.innerHTML = "keine neuen Adressen";
	}
}

function goo2_initialize() {
	/*
	var vendorID = document.getElementsByTagName('address').item(0).getAttribute('vendorid');
	var company = document.getElementsByTagName('address').item(0).getAttribute('company');
	var addr = document.getElementsByTagName('address').item(0).getAttribute('addr');
	var nameField = document.getElementById('nameField');
	var addressField = document.getElementById('addressField');
	var output = document.getElementById('output');
	var addressesLength = document.getElementById('addresses').childNodes.length;
	*/
	
	
  if (GBrowserIsCompatible()) {
  	// define the crosshair tile layer and its required functions 
        var crossLayer = new GTileLayer(new GCopyrightCollection(""), 0, 15); 
        crossLayer.getTileUrl =  function(tile, zoom) { 
          return "./include/tile_crosshairs.png"; 
        } 
        crossLayer.isPng = function() {return true;} 
 
        // Create a new map type incorporating the tile layer 
        var layerTerCross = [ G_PHYSICAL_MAP.getTileLayers()[0], 
                              crossLayer ]; 
        var mtTerCross = new GMapType(layerTerCross, 
                                      G_PHYSICAL_MAP.getProjection(), "Ter+"); 
  	
    map = new GMap2(document.getElementById("map_canvas"));
    map.addMapType(G_PHYSICAL_MAP); 
   // map.addMapType(mtTerCross); 
 
   	 map.setCenter(new GLatLng(49.232797, 7.0441739), 7);
    map.addControl(new GSmallMapControl());
    //map.addControl(new GMapTypeControl());
    //map.enableScrollWheelZoom();
    
    // Create a base icon for all of our markers that specifies the
        // shadow, icon dimensions, etc.
       
        
    var mapControl = new GHierarchicalMapTypeControl(); 
    
     // Set up map type menu relationships 
        mapControl.clearRelationships(); 
        mapControl.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, "Labels", false); 
        mapControl.addRelationship(G_PHYSICAL_MAP, mtTerCross, "Crosshairs"); 
  
        // Add control after you've specified the relationships 
        map.addControl(mapControl); 
        var point = new GLatLng(49.232797, 7.0441739);
        map.addOverlay(new GMarker(point));
        
       
    geocoder = new GClientGeocoder();
    
    var street = $('street');
	var zipAndCity = $('zipAndCity');
	var country = $('country');
	var address = "";
	var success = $('success');
	
	if(street.value!=""){
		address += street.value+" ";
	}
	
	if(zipAndCity.value!=""){
		address += zipAndCity.value+" ";
	}
	
	if(country.value!=""){
		address += country.value;
	}
	
	if(address!=""){
		getKoords2(address);
	}
  }
}


function goo3_initialize() {
	
  if (GBrowserIsCompatible()) {
  	// define the crosshair tile layer and its required functions 
        var crossLayer = new GTileLayer(new GCopyrightCollection(""), 0, 15); 
        crossLayer.getTileUrl =  function(tile, zoom) { 
          return "./include/tile_crosshairs.png"; 
        } 
        crossLayer.isPng = function() {return true;} 
 
        // Create a new map type incorporating the tile layer 
        var layerTerCross = [ G_PHYSICAL_MAP.getTileLayers()[0], 
                              crossLayer ]; 
        var mtTerCross = new GMapType(layerTerCross, 
                                      G_PHYSICAL_MAP.getProjection(), "Ter+"); 
  	
    map = new GMap2(document.getElementById("map_canvas"));
    map.addMapType(G_PHYSICAL_MAP); 
   // map.addMapType(mtTerCross); 
 
   	 map.setCenter(new GLatLng(49.232797, 7.0441739), 7);
    map.addControl(new GSmallMapControl());
    //map.addControl(new GMapTypeControl());
    //map.enableScrollWheelZoom();
    
    // Create a base icon for all of our markers that specifies the
        // shadow, icon dimensions, etc.
       
        
    var mapControl = new GHierarchicalMapTypeControl(); 
    
     // Set up map type menu relationships 
        mapControl.clearRelationships(); 
        mapControl.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, "Labels", false); 
        mapControl.addRelationship(G_PHYSICAL_MAP, mtTerCross, "Crosshairs"); 
  
        // Add control after you've specified the relationships 
        map.addControl(mapControl); 
        var point = new GLatLng(49.232797, 7.0441739);
        map.addOverlay(new GMarker(point));
        
       
    geocoder = new GClientGeocoder();
    
    if($('streetSA')){
	    var street = $('streetSA');
		var zipAndCity = $('zipAndCitySA');
		var country = $('countrySA');
		var address = "";
		var success = $('success');
		
		if(street.value!=""){
			address += street.value+" ";
		}
		
		if(zipAndCity.value!=""){
			address += zipAndCity.value+" ";
		}
		
		if(country.value!=""){
			address += country.value;
		}
		
		if(address!=""){
			//getKoords2(address);
		}
    }
  }
  
}


    function showAddress(){
    	var aktAddrPos = document.getElementById('aktAddrPos');
    	var aktPos = aktAddrPos.value;
    	var vendorID = document.getElementsByTagName('address').item(aktPos).getAttribute('vendorid');
		var company = document.getElementsByTagName('address').item(aktPos).getAttribute('company');
		var address = document.getElementsByTagName('address').item(aktPos).getAttribute('addr');
		var nameField = document.getElementById('nameField');
		var addressField = document.getElementById('addressField');
		var addressesLength = document.getElementById('addresses').childNodes.length;
		
		if (geocoder) {
			geocoder.getLatLng(
				addressField.value,
				function(point) {
					if (!point) {
						alert(addressField.value + " not found");
					} else {
						map.setCenter(point, 13);
						var marker = new GMarker(point);
						map.addOverlay(marker);
						marker.openInfoWindowHtml("<b>"+company+"</b><br/ >"+addressField.value+"<br />"+point);
						
						var serial = "";
						serial += "vendorID="+vendorID+"&lat="+point.y+"&lng="+point.x;
            			var sa=send2server("action=setKoords&"+serial);
            			aktPos++;
						aktAddrPos.value = aktPos;
						
						vendorID = document.getElementsByTagName('address').item(aktPos).getAttribute('vendorid');
						company = document.getElementsByTagName('address').item(aktPos).getAttribute('company');
						address = document.getElementsByTagName('address').item(aktPos).getAttribute('addr');
						nameField = document.getElementById('nameField');
						addressField = document.getElementById('addressField');
						nameField.innerHTML = company+" ("+(1+aktPos).toString()+" von "+addressesLength+")";
  						addressField.value = address;
			        }
      			}
    		);
  		}
	}
	
	// Adresse überspringen
	 function nextAddress(){
	 	var aktAddrPos = document.getElementById('aktAddrPos');
    	var aktPos = aktAddrPos.value;
    	var vendorID = document.getElementsByTagName('address').item(aktPos).getAttribute('vendorid');
		var company = document.getElementsByTagName('address').item(aktPos).getAttribute('company');
		var address = document.getElementsByTagName('address').item(aktPos).getAttribute('addr');
		var nameField = document.getElementById('nameField');
		var addressField = document.getElementById('addressField');
		var addressesLength = document.getElementById('addresses').childNodes.length;
    	aktPos++;
		aktAddrPos.value = aktPos;
		
		vendorID = document.getElementsByTagName('address').item(aktPos).getAttribute('vendorid');
		company = document.getElementsByTagName('address').item(aktPos).getAttribute('company');
		address = document.getElementsByTagName('address').item(aktPos).getAttribute('addr');
		nameField = document.getElementById('nameField');
		addressField = document.getElementById('addressField');
		nameField.innerHTML = company+" ("+(1+aktPos).toString()+" von "+addressesLength+")";
		addressField.value = address;
	 }
    
    // Karte auf Punkt positionieren
    function centerMapPos(pointY, pointX, num){
    	var mapDiv = document.getElementById('gmap');
    	mapDiv.focus();
    	map.setCenter(new GLatLng(pointY, pointX));
    	//GEvent.trigger($('mtgt_gmMarker_'+num), "click");
    	var marker = $('mtgt_unnamed_'+num);
    	GEvent.trigger(marker, "click");
    }
    
    function getKoords(address) {
    	geocoder = new GClientGeocoder();
    	var koords = null;
    	var latField = $('lat');
    	var lngField = $('lng');
    	var success = $('success');
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " nicht gefunden");
              success.value = "false";
            } else {
            	//alert(address+": x="+point.x+", y="+point.y);
            	latField.value = point.y;
            	lngField.value = point.x;
            	success.value = "true";
            	document.areasearch.submit();
            }
          }
        );
      }
    }
    
    function getKoords2(address) {
    	geocoder = new GClientGeocoder();
    	var koords = null;
    	var latField = $('lat');
    	var lngField = $('lng');
    	var success = $('success');
      if (geocoder) {
        geocoder.getLatLng(
          address,
          test = function(point) {
            if (!point) {
              alert(address + " nicht gefunden");
              success.value = "false";
            } else {
            	map.setCenter(point, 13);
				var marker = new GMarker(point);
				map.addOverlay(marker);
            }
          }
        );
      }
    }

	function getKoords3(address) {
    	geocoder = new GClientGeocoder();
    	var koords = null;
    	var latField = $('lat');
    	var lngField = $('lng');
    	var success = $('success');
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " nicht gefunden");
              success.value = "false";
            } else {
            	//alert(address+": x="+point.x+", y="+point.y);
            	latField.value = point.y;
            	lngField.value = point.x;
            	success.value = "true";
            	document.form_advancedSearch.submit();
            }
          }
        );
      }
    }

    function getVendAddresses(url){
    	var output = document.getElementById('output');
    	var vendorID = document.getElementById('vendorid');
    	var addressesLength = document.getElementById('addresses').childNodes.length;
    	alert(addressesLength);
    	var addr = "";
    	var lat = "";
    	var lng = "";
    	addressesLength = 10;
    	for(i=0; i<addressesLength; i++){
    		vendorID = document.getElementsByTagName('address').item(i).getAttribute('vendorid');
    		addr = document.getElementsByTagName('address').item(i).getAttribute('addr');
    		alert("next");
    		getKoords(vendorID, addr);
    		//output.innerHTML += vendorID+": "+addr+": "+getKoords(vendorID, addr)+"<br />";
    		//alert(getKoords(addr));
    		//alert(showAddress(addr));
    	}
    	//alert("Hallo");
    	//alert(ausgabe);
    	
    }
