/**
 *	Set of functions for Google Maps and other functions..
 *  
 *	Author: Dal Ponte Andrea
 *
 */

var map = null;
var geocoder = null;
var xmlHttp = null;

function trim(stringa) {
    while (stringa.substring(0,1) == ' ') {
        stringa = stringa.substring(1, stringa.length);
    }
    while (stringa.substring(stringa.length-1, stringa.length) == ' ') {
        stringa = stringa.substring(0,stringa.length-1);
    }
    return stringa;
}

function admInitialize(id, lat, lng, zoom) {
 	if(id  == undefined)  { throw new Error("Error: Container not defined"); }
 	if(lat == undefined)  { lat  = 45.636554478883596; }
 	if(lng == undefined)  { lng  = 11.751090288162231; }
 	if(zoom == undefined) { zoom = 13; }
 	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById(id));
		geocoder = new GClientGeocoder();
		
		map.addControl(new GSmallMapControl());		
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(lat, lng), zoom);
		GEvent.addListener(map, "click", function(overlay,point) {
			map.clearOverlays();
			createSimpleMarker(point, map);
			setAdmTextBox(point.toString());
		});		
	} else {
		throw new Error("Error: Browser not supported"); 
	}
	return map;
}
function startMap() {
	var id   = 'map_canvas';
 	var lat  = 45.636554478883596;
 	var lng  = 11.751090288162231; 
 	//var msg  = '<img src="http://ceramicanovita.test.nsoft.it/app/webroot/img/logo_small200.jpg"/>';
    var msg  = '<img src="/app/webroot/img/logo_small200.jpg"/>';
 	var zoom = 15; 
 	//centra
 	var point = new GLatLng(45.639427549132854, 11.753504276275635);
 	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById(id));
		geocoder = new GClientGeocoder();
		
		map.addControl(new GSmallMapControl());		
		map.addControl(new GMapTypeControl());
		
		map.setCenter(point, zoom);
	//crea il marker
		map.clearOverlays();
		point = new GLatLng(lat, lng);
		var marker = new GMarker(point);
		map.addOverlay(marker);
		marker.openInfoWindowHtml(msg);
	} else {
		throw new Error("Error: Browser not supported"); 
	}
}
function Initialize(id, lat, lng, msg, zoom) {
 	if(id  == undefined)  { throw new Error("Error: Container not defined"); }
 	if(lat == undefined)  { lat  = 45.636554478883596; }
 	if(lng == undefined)  { lng  = 11.751090288162231; }
 	if(zoom == undefined) { zoom = 15; }
 	
 	var point = new GLatLng(lat, lng);
 	
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById(id));
		geocoder = new GClientGeocoder();
		
		map.addControl(new GSmallMapControl());		
		map.addControl(new GMapTypeControl());
		
		map.setCenter(point, zoom);
		map.clearOverlays();
		var marker = new GMarker(point);
		map.addOverlay(marker);
		marker.openInfoWindowHtml(msg);
	} else {
		throw new Error("Error: Browser not supported"); 
	}
	return map;
}

function searchAddress(address) {
	if (geocoder) {
		geocoder.getLatLng(address,
		function(point) {
			if (!point) {
				alert(address + "\nIndirizzo non trovato");
			} else {
				map.clearOverlays();
				map.setCenter(point, 13);
				var marker = new GMarker(point);
				map.addOverlay(marker);
				marker.openInfoWindowHtml(address);
				setAdmTextBox(point.toString());
			}
		});
	}
}

function createHtmlMarker(point, msg, map) {
	 var marker = new GMarker(point);
     map.addOverlay(marker);
     marker.openInfoWindowHtml(msg);
}

function createSimpleMarker(point, map) {
	 var marker = new GMarker(point);
     map.addOverlay(marker);     
}

function setAdmTextBox(str) {
	if(str  == undefined)  { throw new Error("Error: Invalid field"); }
	var lng = document.getElementById('ResellerLong');
	var lat = document.getElementById('ResellerLat');
	str = str.substring(1, str.length);
	str = str.substring(0,str.length-1);
	str = str.split(',');
	lat.value = trim(str[0]);
	lng.value = trim(str[1]);	
}

//  AJAX FUNCTIONS  //

function GetXmlHttpObject() {
	var xmlHttp=null;
	
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch (e) {
		//Internet Explorer
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}	

//  FINE AJAX  //


