var so;

function gmappa_resetta() {
	if(map) {
		$('mappa').setStyle('display','block');
		$('agenzie').setStyle('display','block');
		$('gmappa').setStyle('display','none');
		$('agenzia').setStyle('display','none');
		map=null;
		geocoder=null;
	}
}

function mappa(regione,cerca) {

    var prov=$('prov').get('value');
    var localita=$('localita').get('value');
    var nome=$('nome').get('value');
    var cap=$('cap').get('value');
	if(cerca) {
		if(nome && nome.length<4) {alert('Si prega di indicare un nome di almeno 4 caratteri, grazie.');return false;}
		if(localita && localita.length<3) {alert('Si prega di indicare una localitas di almeno 3 caratteri, grazie.');return false;}
		if(map) gmappa_resetta();
	}
	else {
		//crea la mappa
		so = new SWFObject("mappa/ammap.swf", "ammap", "100%", "100%", "8", "#002947");
	  	so.addVariable("path", "mappa/");
		so.addVariable("data_file", escape("mappa/ammap_data.php?regione="+regione));
	  	so.addVariable("settings_file", escape("mappa/ammap_settings.xml"));
		so.addVariable("preloader_color", "#999999");
		so.write("mappa");
	}
	
	//se c'è una regione fa una chiamata ajax per caricare la agenzie
	if(regione || cerca) {
	    $('agenzie').setStyles({'display':'none','opacity':0});
	    $('agenzie_carica').setStyle('display','block');
	    $('abs').fade(0);
		var req = new Request.HTML({url:'agenzie_ajax.php',
			onSuccess: function(a,b,html) {
	      		$('agenzie').set('html',html);
			    $('agenzie').setStyle('display','block');
			    $('agenzie').fade(1);
			    $('agenzie_carica').setStyle('display','none');
	      		var agenzie=$('agenzie').getElements('a');
				if(agenzie.length>4) {
	      		    $('scrollbar1').setStyle('display','block');
                    makeScrollbar( $('agenzie'), $('scrollbar1'), $('handle1') );
	      		}
	      		else $('scrollbar1').setStyle('display','none');
	      		agenzie.each(function(age) {
					age.addEvent('click',function(evento) {
						evento.preventDefault();
						var req = new Request.HTML({url:'agenzie_ajax.php',
							onSuccess: function(a,b,html) {
                                $('agenzia').set('html',html);
                                $('mappa').setStyle('display','none');
                                $('agenzie').setStyle('display','none');
                                $('gmappa').setStyle('display','inline');
                                $('agenzia').setStyle('display','block');
								if(Gmappa()) indirizzo($('agenzia').getElement('.indirizzo').get('html'));
								if($('gmappa_indietro')) {
									$('gmappa_indietro').addEvent('click',function(evento) {
										evento.preventDefault();
										gmappa_resetta();
									});
								}

							},
							onFailure: function(error) {
								alert("Si è verificato un errore nella procedura di caricamento delle agenzie, si prega di riprovare.");
							}
						}).get({'id':age.get('id')});
					});
				});
			},
			onFailure: function(error) {
				alert("Si è verificato un errore nella procedura di caricamento delle agenzie, si prega di riprovare.");
			}
		}).post({'regione':regione,'nome':nome,'cap':cap,'localita':localita,'prov':prov,'cerca':cerca});
	}
}

function makeScrollbar(content,scrollbar,handle,horizontal,ignoreMouse){
	var steps = (horizontal?(content.getScrollSize().x - content.getSize().x):(content.getScrollSize().y - content.getSize().y))
	var slider = new Slider(scrollbar, handle, {
		steps: steps,
		mode: (horizontal?'horizontal':'vertical'),
		onChange: function(step){
			// Scrolls the content element in x or y direction.
			var x = (horizontal?step:0);
			var y = (horizontal?0:step);
			content.scrollTo(x,y);
		}
	}).set(0);
	if( !(ignoreMouse) ){
		// Scroll the content element when the mousewheel is used within the
		// content or the scrollbar element.
		$$(content, scrollbar).addEvent('mousewheel', function(e){
			e = new Event(e).stop();
			var step = slider.step - e.wheel * 30;
			slider.set(step);
		});
	}
	// Stops the handle dragging process when the mouse leaves the document body.
	$(document.body).addEvent('mouseleave',function(){slider.drag.stop()});
}



var map = null;
var geocoder = null;

function Gmappa() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("gmappa"));
    map.setCenter(new GLatLng(45.4419, 10.1419), 13);
    geocoder = new GClientGeocoder();
    if(geocoder) return true;
  }
  else return false;
}

function indirizzo(address) {
  if (geocoder) {
    geocoder.getLatLng(
      address,
      function(point) {
        if (!point) {
          alert(address + " non trovato sulla mappa.");
        } else {
          var marker = new GMarker(point);
          map.addOverlay(marker);
          //marker.openInfoWindowHtml(address);
          map.setCenter(point, 15);
        }
      }
    );
  }
}
var p_scroll=0;
var k_scroll=0;
var i_scroll=1;
var n_scroll=0;

//sovrascrivo
n_scroll=10;
k_scroll=10;

function carica_vetrina () {

	    var immagini=$('scroll_list').get('value').split("|");
	    n_scroll=immagini.length;
	    immagini.each(function(url,i,ar) {
			var top="";
			if(!i) top=";top:0px;";
			var zindex=(2+(1*i));
            var img = new Asset.image(url, {'id': 'img-'+i, 'title': '','class':'img_vetrina', 'style':'z-index:'+zindex+top, 'onload': spingi});
		});
		return true;

}
function spingi(img) {
	img.inject($('scroller_in'));
	k_scroll++;
	//alert(k_scroll);
}
var vetrina_aperta=true;
window.addEvent('domready', function() {

	if($('cerca')) $('cerca').addEvent('submit',function(evento) {
		evento.preventDefault();
		mappa(0,1);
	});
	//if($('network')) makeScrollbar( $('network'), $('scrollbar1'), $('handle1') );
	if($('scroller') && $('loader_vetrina')) {

		//if(carica_vetrina()) {$('loader_vetrina').setStyle('display','none'); }
	    var f_scroll = function(){
	        if(i_scroll>k_scroll) {
	            if($('loader_vetrina'))$('loader_vetrina').setStyle('display','block');
	            return false;
	        }
			if(vetrina_aperta && $('loader_vetrina')) {$('loader_vetrina').setStyle('display','none');vetrina_aperta=false;return false;}
			if(i_scroll>=(n_scroll)) {
				i_scroll=0;
				$$('.img_vetrina').each(function(image,i) {
				image.setStyle('top','-333px');
				});
			}
			if((i_scroll-2)>=0) $('img-'+(i_scroll-2)).setStyle('display','none');
			$('img-'+i_scroll).setStyle('display','block');
			var myEffect = new Fx.Morph($('img-'+i_scroll), {duration: 750, transition: Fx.Transitions.Sine.easeOut});
			myEffect.start({
			'top': [-333, 0]
			});
			i_scroll++;
		};
		f_scroll.periodical(4000);
	}
	
});