var indice = 0;//inizializzo indice della galleria
var cat_attuale = 'totem';//inizializzo categoria foto
var immagini;
var img_totem;
var img_monitor;
var img_videowall;
var t;//inizializzo intervallo di tempo
//var galleriaArray = [];
var galleriaJson = {
	"totem":{
		'dida':[],
		'sorgente':[]
	},
	"monitor":{
		'dida':[],
		'sorgente':[]
	},
	"videowall":{
		'dida':[],
		'sorgente':[]
	}
}
var precarico = [];
//console.log(galleriaJson.monitor.sorgente.length);
//console.log(galleriaJson.monitor.sorgente.length);
//console.log(galleriaJson.videowall.dida[0]);
//alert(img_totem);
//alert(immagini.find("[type=bool]").length);

/* 	function gestisciGalleriaInterna(){//slideshow in pagine interne
		immagini = galleria_interna_xml.find('Item').length;//memorizzo quante foto ci sono
		console.log(immagini);
		galleria_interna_xml.find("Item").each(function(){//estraggo contenuto xml e lo inserisco in json
			var _this = $(this);
			galleriaArray.push( _this.find("Immagine").text().replace(/\s+/ig,"") );//memorizzo sorgente dell'immagine nell'array per scorrere le immagini
			precarico.push( _this.find("Immagine").text().replace(/\s+/ig,"") );//memorizzo sorgente dell'immagine nell'array per precaricare le immagini
			$.preload(precarico);
			console.log(galleriaArray);
		});
		ciclaGalleriaInterna();
	}

	function ciclaGalleriaInterna(){
		if (indice==immagini) {indice=0;}//rendo slideshow circolare
		var foto = galleriaArray[indice];//memorizzo l'indirizzo della foto
		$('#galleria').animate({opacity:0},'slow',function(){
			$(this).css({'background-image':'url("'+foto+'")'}).animate({opacity: 1},'slow');
		});
		indice++;
		//console.log('immagine '+indice+' della categoria '+cat_attuale);
		t=setTimeout("ciclaGalleriaInterna()",10000);
	} */

	function galleriaInterna(){
		$('#galleria').children('ul').exposure({
			autostartSlideshow: 'true',
			slideshowDelay: '10000',
			showThumbs: 'false',
			showControls: 'false',
			showCaptions: 'false',
			showExtraData: 'false',
			keyboardNavigation: 'false',
			clickingNavigation: 'false',
			allowDuplicates: 'false',
			fixedContainerSize: 'true',
			onImage : function(image, imageData, thumb) {
				$('.exposureWrapper > .exposureLastImage').stop().fadeOut(1000, function() {// Fade out the previous image.
					$(this).remove();
				});
				image.hide().stop().fadeIn(2000);// Fade in the current image.
				var larghezza = image.width();
				image.css({marginLeft:'-'+larghezza/2+'px'});//centro immagine
				if ($.exposure.showThumbs && thumb && thumb.length) {
					thumb.parents('li').siblings().children('img.selected').stop().fadeTo(200, 1);
					thumb.fadeTo('fast', 0.5).addClass('selected');
				}
			}
		});
	}

	function setQuadretti(categoria,classe) {//cambia evidenziazione ed etichetta della categoria
		$('#categoria').fadeOut(function() {//inizializzo etichetta categoria
			$(this).html(categoria).fadeIn();
			$('#quadretti a').removeClass('on');//resetto accensione quadretti
			$('#quadretti .'+classe).addClass('on');//accendo relativo quadretto
		});
	}

	function gestisciGalleria(){//slideshow in hp

		function getCat(item){//vedo a quale categoria appartiene la singola foto
			//console.log(item.find("Totem:contains('True')"));
			if(item.find("Totem:contains('True')").length>0) return "totem";
			if(item.find("Monitor:contains('True')").length>0) return "monitor";
			if(item.find("Videowall:contains('True')").length>0) return "videowall";
		}

		galleria_xml.find("Item").each(function(){//estraggo contenuto xml e lo inserisco in json
			var _this = $(this);
			var cat = getCat(_this);
			galleriaJson[cat].dida.push( _this.find("Didascalia").text() );//memorizzo didascalia dell'immagine nell'array della categoria corrispondente
			galleriaJson[cat].sorgente.push( _this.find("Immagine").text().replace(/\s+/ig,"") );//memorizzo sorgente dell'immagine nell'array della categoria corrispondente; per FF il replace toglie spazi, a capo etc.
			precarico.push( _this.find("Immagine").text().replace(/\s+/ig,"") );//memorizzo sorgente dell'immagine nell'array per precaricare le immagini
		});

		img_totem = galleriaJson.totem.sorgente.length;//memorizzo quante foto Totem ci sono
		img_monitor = galleriaJson.monitor.sorgente.length;//memorizzo quante foto Monitor ci sono
		img_videowall = galleriaJson.videowall.sorgente.length;//memorizzo quante foto Videowall ci sono

		setQuadretti('Multimedia Totem','arancio');//inizializzo quadretto sull'arancio
		$.preload(precarico);
		ciclaGalleria();

		$('#quadretti a').click(function() {//utente puo' cambiare categoria di foto cliccando sul quadretto
			var _this = $(this);
			clearInterval(t);//resetto intervallo, altrimenti al click dell'utente l'immagine potrebbe ricambiare anche subito dopo
			indice=0;//resetto
			if (_this.hasClass('arancio')) {
				cat_attuale='totem';
				setQuadretti('Multimedia Totem','arancio');
			}
			if (_this.hasClass('verde')) {
				cat_attuale='monitor';
				setQuadretti('Monitor','verde');
			};
			if (_this.hasClass('marrone')) {
				cat_attuale='videowall';
				setQuadretti('Videowall','marrone');
			}
			ciclaGalleria();
		});
	}

	function ciclaGalleria(){
		switch (cat_attuale) {
			case "totem":
				if (indice==img_totem){//ho finito di ciclare le immagini totem
					indice=0;//resetto contatore singola categoria
					cat_attuale='monitor';//cambio categoria
					setQuadretti('Monitor','verde');
				}
				break;
			case "monitor":
				//indice++;
				if (indice==img_monitor){//ho finito di ciclare le immagini monitor
					indice=0;//resetto contatore singola categoria
					cat_attuale='videowall';//cambio categoria
					setQuadretti('Videowall','marrone');
				}
				break;
			case "videowall" :
				//indice++;
				if (indice==img_videowall){//ho finito di ciclare le immagini videowall
					indice=0;//resetto contatore singola categoria
					cat_attuale='totem';//cambio categoria
					setQuadretti('Multimedia Totem','arancio');
				}
				break;
			default :
		}

		var foto = galleriaJson[cat_attuale].sorgente[indice];//memorizzo l'indirizzo della foto
		var descrizione = galleriaJson[cat_attuale].dida[indice];//memorizzo la descrizione della foto

		$('#galleria').animate({opacity:0},'slow',function(){
			$(this).css({'background-image':'url("'+foto+'")'}).animate({opacity: 1},'slow');
		});
		$('#didascalia_text').fadeOut(function() {
			$(this).html(descrizione).fadeIn();
		});

		indice++;
		//console.log('immagine '+indice+' della categoria '+cat_attuale);
		t=setTimeout("ciclaGalleria()",10000);
	}

/* 	function gestisciTab() {//versione con due soli tab
		//$('.form_cerca select').sSelect({ddMaxHeight: '200px'});
		$('.tab_title.off a').live('click', function() {
			$('.tab_content, .tab_title').toggleClass('off');
			return false;
		});
	} */

	function gestisciTab() {//versione con piu di due tab
		var tabContent = $('#tab_wrap > div.tab_content > div');
		var tabTitle = $('#tab_wrap > ul.tab_title');
		tabTitle.children('li').eq(0).addClass('on');//accendo primo tab
		tabContent.eq(0).addClass('on');
		tabContent.not(':first').hide();//mostro primo tab
		tabTitle.find('a').click(function(){
			var questo = $(this).parent();
			var cliccato = questo.index();//memorizzo tab selezionato
			if ( !(questo.hasClass('on')) ) {//se clicco su un tab diverso da quello gia accesso
				$('.tab_content > div.on').removeClass('on').hide();
				tabTitle.children('li').removeClass('on').eq(cliccato).addClass('on');//accendo tab selezionato
				tabContent.eq(cliccato).show().addClass('on');//mostro tab selezionato
			}
			return false;
		});
	}

	function controllaForm(formale) {
		var formAttuale;
		switch (formale) {
			case "contatti":
				//console.log('sto nel case contatti');
				formAttuale = $('#form_contatti').children('form');
				break;
			/* case "negozi":
				console.log('sto nel case negozi');
				formAttuale = $('#form_negozi').children('form');
				break;
			case "assistenza":
				console.log('sto nel case assistenza');
				formAttuale = $('#form_assistenza').children('form');
				formAttuale.find('select').eq(0).change(function(){
					console.log('hai selezionato '+$(this).getSetSSValue());
					var selezionato = $(this).getSetSSValue();
					if (selezionato == 'italia') {
						//popolo altre select: regione, citta
					} else {//inietto form per formtomail
						formAttuale.parent().fadeOut('slow', function() {
							$(this).next('div.risultato').load(percorso+'other/form_assistenza_mail_'+lingua+'.html', function() {
								$('#form_assistenza_mail').fadeIn('slow');
								controllaForm('assistenza_mail');
								return;
							});
						});
					}
				});
				break; */
			case "assistenza_mail":
				//console.log('sto nel case assistenza mail');
				formAttuale = $('#form_assistenza_mail').children('form');
				break;
			default :
		}

		formAttuale.find('select').each(function(){//stilo select
			$(this).sSelect();
		});

		var formText = formAttuale.find('input[type="text"]');
		var formObbl = formAttuale.find('input[type="text"].obbligatorio');
		var formMail = formAttuale.find('input[type="text"].email');
		var formTel = formAttuale.find('input[type="text"].telefono');
		
		var formTextarea = formAttuale.find('textarea');
		var formPrivacy = formAttuale.find('input[type="checkbox"]');
		var formLabel = formAttuale.find('label').children('span');
		//var send = true;//semaforo
		//console.log('sto controllando');

		formText.each(function() {
			$(this).focus(function() {//al focus seleziono tutto il campo, per agevolare l'utente nella compilazione
				$(this).select();
			});
		});

		formAttuale.submit(function () {

			formLabel.each(function() {//resetto errori
				$(this).hide();
			});

			var send = true;//semaforo

			formObbl.each(function(numero){
				//alert(numero)
				if ( $(this).val()=='' ) {
					$(this).prev('label').children('span').html( stampaMessaggi('form','obbligatorio') ).fadeIn('slow');
					send = false;
				}
			});

			switch (formale) {
				case "contatti":
					if ( !(validEmail.test( formMail.val() )) ) {//mail deve essere ben formata
						//console.log('aiutoooo');
						formMail.prev('label').children('span').html( stampaMessaggi('form','mail') ).fadeIn('slow');
						send = false;
					}
					if ( !(validTel.test( formTel.val() )) ) {//telefono deve essere valido
						formTel.prev('label').children('span').html( stampaMessaggi('form','tel') ).fadeIn('slow');
						send = false;
					}
					if ( !(formPrivacy.attr('checked')) ){//privacy obbligatoria
						formPrivacy.nextAll('span').html( stampaMessaggi('form','privacy') ).fadeIn('slow');
						send=false;
					}
					if ( formTextarea.val()=='' ){//messaggio obbligatorio
						formTextarea.prev('label').children('span').html( stampaMessaggi('form','obbligatorio') ).fadeIn('slow');
						send=false;
					}
					break;
				case "assistenza_mail":
					if ( !(validEmail.test( formMail.val() )) ) {//mail deve essere ben formata
						//console.log('aiutoooo');
						formMail.prev('label').children('span').html( stampaMessaggi('form','mail') ).fadeIn('slow');
						send = false;
					}
					if ( !(formPrivacy.attr('checked')) ){//privacy obbligatoria
						formPrivacy.nextAll('span').html( stampaMessaggi('form','privacy') ).fadeIn('slow');
						send=false;
					}
					if ( formTextarea.val()=='' ){//messaggio obbligatorio
						formTextarea.prev('label').children('span').html( stampaMessaggi('form','obbligatorio') ).fadeIn('slow');
						send=false;
					}
					break;
				default :
			}

			if (send) {
				//console.log('sto nell if');
				switch (formale) {
					/* case "seriale" :
						//console.log('sto nel case seriale andato a buon fine');
						ottieniGuida();
						break;
					case "utente" :
						//console.log('sto nel case utente andato a buon fine');
						//ottieniUtente();
						gestisciFormtomail('utente');
						break; */
					case "contatti" :
						//console.log('sto nel case contatti andato a buon fine');
						gestisciFormtomail('contatti');
						//inviaContatto();//fare funzione per formtomail
						break;
					case "assistenza_mail":
						//console.log('sto nel case assistenza mail andato a buon fine');
						gestisciFormtomail('assistenzaMail');
						break;
					default :
						//console.log('sto nel case default andato a buon fine');
				}
			}
			return false;//comunque il submit viene sempre disabilitato
		});

		//return send;
	}

	function gestisciLayer(tipologia){
		$('p.'+tipologia+' a').live('click',function(){
			var scrollTop = $(window).scrollTop();//memorizzo lo scrolling della finestra
			$('#layout').append('<div id="layer" class="'+tipologia+'">&nbsp;</div>');
			$('#layer').load(percorso+'other/'+tipologia+'_'+lingua+'.html .content', function() {
				if ($.browser.msie) {
					$(this).css({'height': getDocHeight() }).show(0);//il layer prende l'altezza del document (mentre la larghezza e' fissa); lo faccio dopo l'iniezione del contenuto
				} else {
					$(this).css({'height': getDocHeight() }).fadeIn();//il layer prende l'altezza del document (mentre la larghezza e' fissa); lo faccio dopo l'iniezione del contenuto
				}
				var layerContent = $('#layer > .content');
				var bottone = '<div class="btn_esp"><a href="#" class="layer_close" title="'+stampaMessaggi('layer','chiudi')+'"><span>'+stampaMessaggi('layer','chiudi')+'</span></a></div>';
				var centrando = parseInt( layerContent.outerWidth(false)/2 );//per centrare orizzontalmente calcolo la larghezza del div (width+padding+bordi) e do margin negativo della meta'
				layerContent.prepend(bottone).append(bottone).css({
					'top': scrollTop+50,
					'margin-left':'-'+centrando+'px'//per centrare orizzontalmente calcolo la larghezza del div (width+padding) e do margin negativo della meta'
				});
				$('.layer_close').live('click',function(){
					if ($.browser.msie) {
						$('#layer').hide(0,function(){
							$(this).remove();
						});
					} else {
						$('#layer').fadeOut(function(){
							$(this).remove();
						});
					}
					return false;
				});
			});
			return false;
		});
	}

	function controllaNL(){
		$('#form_nl select').sSelect();

		/*phplist*/
		var tipo_attuale = $('#utente').val();//inizializzo tipologia utente
		aggiornoNL(tipo_attuale);//inizializzo form

		function aggiornoNL(tipo_formale){
			if (lingua == 'it') {
				switch (tipo_formale) {//cambio subscribe page e lista di iscrizione
					case "business":
						$('form[name="subscribeform"]').attr('action','http://mailinglists.domino.it/hantarex/lists/?p=subscribe&id=1');
						$('#tipo_utente').attr('name','list[10]');//nl it az
						break;
					case "privato":
						$('form[name="subscribeform"]').attr('action','http://mailinglists.domino.it/hantarex/lists/?p=subscribe&id=4');
						$('#tipo_utente').attr('name','list[11]');//nl it priv
						break;
					default :
				}
			} else {//inglese
				switch (tipo_formale) {
					case "business":
						$('form[name="subscribeform"]').attr('action','http://mailinglists.domino.it/hantarex/lists/?p=subscribe&id=2');
						$('#tipo_utente').attr('name','list[14]');//nl en az
						break;
					case "privato":
						$('form[name="subscribeform"]').attr('action','http://mailinglists.domino.it/hantarex/lists/?p=subscribe&id=5');
						$('#tipo_utente').attr('name','list[15]');//nl en priv
						break;
					default :
				}
			}
		}

		$('#utente').change(function(){//al cambio della select aggiorno form
			//console.log('ho cambiato la select in: '+$(this).val() );
			tipo_attuale = $(this).val();
			aggiornoNL(tipo_attuale);
		});

		/*validazione*/
		var formNL = $('#form_nl_wrap form');
		var formNLText = $('#form_nl_wrap input[type=text]');
		var formNLEmail = $('#form_nl_wrap input[name=email]');
		var formNLPrivacy = $('#form_nl_wrap input[type=checkbox]');
		var etichetta;
		$('#form_nl_messaggi > p').hide();//inizializzo messaggi di errore
		$('#form_nl_messaggi > .obt').html( stampaMessaggi('nl','obbligatorio') );
		$('#form_nl_messaggi > .obe').html( stampaMessaggi('nl','email') );
		$('#form_nl_messaggi > .obp').html( stampaMessaggi('nl','privacy') );

		formNL.submit(function(){
			var send=true;//usando variabile send posso fare piu controlli contemporaneamente e solo alla fine eventualmente inibisco l'invio del form
			formNL.find('.riga').removeClass('errore');//resetto errori
			$('#form_nl_messaggi > p').hide();

			formNLText.each(function(indice){//campi testo
				etichetta = $(this).prev('label').html();
				if ( $(this).val()=='' || $(this).val()==etichetta ) {//se il campo e' vuoto oppure uguale alla label
					//console.log('compila il campo n. '+indice);
					$(this).parents('.riga').addClass('errore');
					$('#form_nl_messaggi > .obt').show();
					send=false;
				}
			});

			if ( !(validEmail.test( formNLEmail.val() )) ) {//email non valida
				//console.log('email non valida');
				formNLEmail.parents('.riga').addClass('errore');
				$('#form_nl_messaggi > .obe').show();
				send=false;
			}

			if ( !(formNLPrivacy.attr('checked')) ){//privacy obbligatoria
				formNLPrivacy.parents('.riga').addClass('errore');
				$('#form_nl_messaggi > .obp').show();
				send=false;
			}
			return send;
		});

		formNLText.each(function(indice) {//controlli campi testo mentre utente digita
			$(this).focus(function() {
				$(this).select();// al focus seleziono tutto il campo, per agevolare l'utente nella compilazione
			});
			etichetta = $(this).prev('label').html();
			$(this).blur(function(){
				//console.log('blur');
				if ( !($(this).val()=='' || $(this).val()==etichetta) ) {//controllo che campo non sia vuoto ne' uguale alla label
					if ( $(this).is('input[name=email]') ) {//se siamo nel campo email
						if ( (validEmail.test( $(this).val() )) ) {//email valida
							$(this).parent('.riga').removeClass('errore');//resetto errore
							$('#form_nl_messaggi > .obe').hide();
						}
					} else {// non siamo nel campo email
						$(this).parent('.riga').removeClass('errore');// resetto errore
					}
				}
				if ( !($('#form_nl_wrap .riga').hasClass('errore')) ) {//se non ci sono errori
					//console.log('niente errori nei campi testo');
					$('#form_nl_messaggi > .obt').hide();//rimuovo il messaggio per tutti i campi testo
				}
			});

		});

		formNLPrivacy.change(function(){//controllo checkbox al click utente
			$(this).parent('.riga').removeClass('errore');// resetto errore al cambio della checkbox
			$('#form_nl_messaggi > .obp').hide();//rimuovo il messaggio
		});
	}

	function controllaLogin(){
		$('#login_content input[type=text]').each(function() {
			$(this).focus(function() {
				$(this).select();// al focus seleziono tutto il campo, per agevolare l'utente nella compilazione
			});
		});
	}

	function gestisciGalleriaProdotto(){
		var dim_thumbX = 114;//eventualmente da modificare se cambiano le proporzioni nel design
		var dim_thumbY = 114;
		/*versione chiamata ajax*/
		/* 		var prima = galleria_prodotto_xml.find("Item").eq(0).find("img_big").text().replace(/\s+/ig,"");//inizializzo foto grande galleria con prima foto dell'xml
		galleria_prodotto_xml.find("Item").each(function(){//estraggo da xml url delle immagini
			var foto_url = $("img_big", this).text().replace(/\s+/ig,""); */

		/*versione template fck*/
		var carosello = $('#carosello > ul > li');
		var prima = carosello.eq(0).find('a').attr('href');//inizializzo foto grande galleria con prima foto del carosello
		//console.log(prima);
		carosello.each(function(){//estraggo da carosello url delle immagini
			var foto_url = $(this).find('a').attr('href');
			//console.log(foto_url);
			precarico.push(foto_url);//memorizzo sorgente dell'immagine nell'array per precaricare le immagini
			var vettore = foto_url.split("/");//creo array dividendo per /
			var ultimo=vettore.pop();//estraggo l'ultimo elemento, ossia il nome del file
			var foto_percorso=vettore.join("/");//unisco gli elementi dell'array per ricreare il percorso senza il nome del file
			//console.log(ultimo+'\n'+foto_percorso+'\n'+foto_url);
			//$('#carosello > ul').append('<li><a href="'+foto_url+'"><img src="'+foto_percorso+'/.'+ultimo+'" alt="" width="'+dim_thumbX+'" height="'+dim_thumbY+'" /></a></li>');//nel src dell'img aggiungo un puntino, per ottenere automaticamente la thumb di contentino
		});
		//console.log(precarico);
		$.preload(precarico);

		if (carosello.length>3) {//attivo carosello solo se ci sono abbastanza immagini
			$("#carosello").jCarouselLite({
				btnPrev:"#freccia_sx",
				btnNext:"#freccia_dx",
				visible:3
			});
		} else {//nascondo frecce che governano carosello
			$('#bottoni').css({visibility:'hidden'})
		}
		
		var gZoom=//zoom e drag immagini
        {
						gallery:$("#carosello > ul"),
            //zoom:$("<div id='zoom' class='small-pic'></div>"),
						zoom:$("<div id='zoom' class='normal-pic'>&nbsp;</div>"),//immetto direttamente la classe normal: per H-DS non ci interessa la classe small
            picsContainer:$("<div id='pics-container'>&nbsp;</div>"),
            /* currentPic:$("<img class='current' src='"+percorso+"img/segnaposto/286x273.png' alt='' />"),
            ghostPic:$("<img class='ghost' src='"+percorso+"img/segnaposto/286x273.png' alt='' />"), */
						currentPic:$("<img class='current' src='"+prima+"' alt='' />"),
            ghostPic:$("<img class='ghost' src='"+prima+"' alt='' />"),
            //galleryImage:null,
            bufferZoomClick:new Array(),/* prevent multiple-zoom click with a queue of click-event */
            stopZoom:false,
            bufferSlideClick:new Array(),/* prevent multiple-slide click with a queue of click-event */
            stopAnimate:false,
            //swapZoom:$("#swapZoom a"),
            init:function()
            {
                gZoom.picsContainer.append(gZoom.currentPic).append(gZoom.ghostPic);
                gZoom.zoom.append(gZoom.picsContainer);
                //gZoom.gallery.before(gZoom.zoom);
								$('#slide_sx').append(gZoom.zoom);//inietto il div zoom
                //gZoom.galleryImage=gZoom.gallery.find("img");
								//gZoom.picsContainer=gZoom.zoom.find;//gZoom.currentPic.parent(),
								//gZoom.currentPic=gZoom.zoom.find;
								//gZoom.ghostPic=gZoom.zoom.find("img.ghost");
                gZoom.callbacks();
            },
            swapCurrentToGhost: function(type)
            {
                gZoom.currentPic.removeClass().addClass("ghost");
                gZoom.ghostPic.removeClass().addClass("current");
                gZoom.currentPic=$("#zoom img.current");
                if (gZoom.bufferSlideClick.length>0) {gZoom.transactSlide(gZoom.bufferSlideClick.shift(),type);}
                else
                    {
                        gZoom.stopAnimate=false;
                        gZoom.stopZoom=false;
                    }
            },
            transactSlide:function (_this, type)
            {
                gZoom.stopAnimate=true;
                gZoom.stopZoom=true;
                gZoom.currentPic=gZoom.zoom.find("img.current");
                gZoom.ghostPic=gZoom.zoom.find("img.ghost");
                // alert(type);
                if (type!="show")
                {
                    //gZoom.ghostPic.attr({"src":_this.attr("src")}).fadeIn("slow");
                    gZoom.ghostPic.attr({"src":_this.parent().attr("href")}).fadeIn("slow");
                    gZoom.currentPic.fadeOut(1500,
                        function()
                        {
                            gZoom.swapCurrentToGhost(type);
                        }
                    );
                }
                else
                {
                    //gZoom.ghostPic.attr({"src":_this.attr("src")}).show();
										gZoom.ghostPic.attr({"src":_this.parent().attr("href")}).show();//cambio il source dell'immagine grande secondo il link della thumb
                    gZoom.currentPic.hide();
										gZoom.swapCurrentToGhost(type);
                }
            },
            transactZoom:function(e)
            {
                gZoom.stopZoom=true;

                if (gZoom.zoom.hasClass("small-pic")) {// ingrandimento
                    gZoom.stopAnimate=true;
                    gZoom.zoom.animate({
											//"height":"80%",
											//"width":"80%"
											"width":"288px",
											"height":"275px"
											}, 600, function() {
                            gZoom.zoom.removeClass().addClass("normal-pic");
                            //gZoom.zoom.removeClass().addClass("pan-pic");
                            if (gZoom.bufferZoomClick.length>0)
                            {
                                gZoom.transactZoom(e);
                                gZoom.bufferZoomClick.shift();
                            }
                            else gZoom.stopZoom=false;
                        }
                    );
                } else {
                    if (gZoom.zoom.hasClass("normal-pic")) {
											// $.log(e.pageX+'--'+e.pageY+'--'+gZoom.zoom.offset().left+'--'+gZoom.zoom.offset().top);
											// $.log((e.pageX-gZoom.zoom.offset().left)+'--'+(e.pageY-gZoom.zoom.offset().top));
                        var offsetL = e.pageX-gZoom.zoom.offset().left;
                        offsetL = -(offsetL*2-gZoom.zoom.width()/2);
                        offsetL = offsetL<0 ? offsetL : 0;

                        var offsetT = e.pageY-gZoom.zoom.offset().top;
                        offsetT = -(offsetT*2-gZoom.zoom.height()/2);
                        offsetT = offsetT<0 ? offsetT : 0;

                        var zoomL=parseInt(gZoom.currentPic.width()*2);
                        var zoomT=parseInt(gZoom.currentPic.height()*2);

                        offsetL=offsetL>=-(zoomL-parseInt(gZoom.zoom.width()))?offsetL:-(zoomL-parseInt(gZoom.zoom.width()));

                        offsetT=offsetT>=-(zoomT-parseInt(gZoom.zoom.height()))?offsetT:-(zoomT-parseInt(gZoom.zoom.height()));

                        gZoom.stopAnimate=true;
                        gZoom.currentPic.animate(
                            {
                                "height":zoomT,
                                "width":zoomL,
                                "left":offsetL,
                                "top":offsetT
                            }, 600,
                            function()
                            {
                                //$.log(gZoom.picsContainer.length);
                                gZoom.picsContainer.width(zoomL*2-parseInt(gZoom.zoom.width()));
                                gZoom.picsContainer.height(parseInt(gZoom.currentPic.height()*2)-parseInt(gZoom.zoom.height()));
                                gZoom.picsContainer.css({"margin-left":-(parseInt(gZoom.currentPic.width())-parseInt(gZoom.zoom.width()))});
                                gZoom.picsContainer.css({"margin-top":-(parseInt(gZoom.currentPic.height())-parseInt(gZoom.zoom.height()))});

                                gZoom.currentPic.draggable(
                                    {
                                        disabled: false,containment: gZoom.picsContainer
                                    }
                                );
                                gZoom.zoom.removeClass().addClass("pan-pic");
                                gZoom.stopAnimate=false;
                                if (gZoom.bufferZoomClick.length>0)
                                {
                                    gZoom.transactZoom(e);
                                    gZoom.bufferZoomClick.shift();
                                }
                                else gZoom.stopZoom=false;
                          }
                        );
                    } else {// pan big
                        gZoom.stopAnimate=true;
                        gZoom.currentPic.animate(
                            {
                                "height":gZoom.currentPic.height()/2,
                                "width":gZoom.currentPic.width()/2,
                                "left":0,
                                "top":0
                            }, 200,
                            function()
                            {
                                gZoom.zoom.removeClass().addClass("normal-pic");
                                //gZoom.zoom.removeClass().addClass("small-pic");
                                gZoom.currentPic.draggable({ disabled: true });
                                gZoom.stopAnimate=false;
                                if (gZoom.bufferZoomClick.length>0)
                                {
                                    gZoom.transactZoom(e);
                                    gZoom.bufferZoomClick.shift();
                                }
                                else gZoom.stopZoom=false;
                            }
                        );
                   }
                }
            }
            ,
            callbacks: function()
            {
								$("#carosello > ul img").live("click",function() {
											$("#carosello > ul img").unbind("hover");
											var _this=$(this);
											if (gZoom.zoom.hasClass("pan-pic"))	{
													gZoom.currentPic.animate(
															{
																	"height":gZoom.currentPic.height()/2,
																	"width":gZoom.currentPic.width()/2,
																	"left":0,
																	"top":0
															}, 200,
															function()
															{
																	gZoom.zoom.removeClass().addClass("normal-pic");
																	gZoom.currentPic.draggable({ disabled: true });
																	gZoom.transactSlide(_this);
															}
													);
											} else {
													if (!gZoom.stopAnimate) gZoom.transactSlide($(this));
													else gZoom.bufferSlideClick.push($(this));
											}
											return false;
                    }
                );

								/* $("#carosello > ul img").mouseover(//cambio immagine all'hover
                    function()
                    {
                        if (gZoom.zoom.hasClass("small-pic"))
                        {
                            if (!gZoom.stopAnimate) gZoom.transactSlide($(this),"show");
                            else gZoom.bufferSlideClick.push($(this));
                        }
                    }
                ); */

								/* gZoom.swapZoom.click(//link testuale?
                    function()
                    {
                        gZoom.swapZoom.removeClass("hidden");
                        $(this).addClass("hidden");
                        //gZoom.swapZoom.find("a").toggleClass("hidden");
                    }
                ); */



                $("img.current").live("click", function(e) {
									if (!gZoom.stopZoom) {gZoom.transactZoom(e);}
									else gZoom.bufferZoomClick.push("click");
								});
            }
        }

    gZoom.init();
	}

