//flag per l'apertura dello slider dei preferiti
var sliderPreferitiOpened = false;
//flag per il caricamento dello slider dei preferiti
var sliderPreferitiLoaded = false;
//flag per l'apertura dello slider del carrello
var sliderCarrelloOpened = false;
//flag per il caricamento dello slider del carrello
var sliderCarrelloLoaded = false;
//nome dell'applicazione da far precederea tutti gli url 
//viene settata da pagecommonheader
basepath = '';

/*
function: addToCart
	aggiunge un'immagine al carrello

Arguments:
	id - id dell'immagine
	msg - messaggio di conferma aggiunta
*/
function addToCart(id, msg) {
	if (sliderCarrelloOpened){
		mySlideCarrello.slideOut();
		};
	
	new Ajax(basepath+'/user/addToCart.htm?idImg='+id, {
		method: 'get',
		onComplete: function(){
			alert(msg);
			sliderCarrelloLoaded=false;
			sliderCarrelloOpened=false;
			}
		}).request();
}

/*
function: delFromCart
	cancella un'immagine dal carrello

Arguments:
	id - id dell'immagine
	askSure - domanda di richiesta conferma
	msg - messaggio di conferma cancellazione
*/
function delFromCart(id) {
	new Ajax(basepath+'/user/removeFromCart.htm?idCart='+id, {
		method: 'get',
		onComplete: function(){
			fillCart();	document.location.reload();	
		}
	}).request();
}

/*
Function: setupCartSlide
	inizializza le slide del carrello
*/

function setupCartSlide(){
	mySlideCarrello= new Fx.Slide('carrello', {mode: 'horizontal'});
	wrapper2 = $('carrello').getParent();
	wrapper2.setStyle('position', 'absolute');
	wrapper2.setStyle('top', '250px');
	wrapper2.setStyle('left', '0px');
	mySlideCarrello.hide();
		
	$('linkCarrello').addEvent('click', apriCarrello);
	
	$('slideoutCarrello').addEvent('click', function(e){
		e = new Event(e);
		mySlideCarrello.slideOut();
		sliderCarrelloOpened=false;
		e.stop();
	});
}

var apriCarrello = function(e){
	if (sliderPreferitiOpened){
		sliderPreferitiOpened = false;		
		mySlidePreferiti.slideOut();
	}
	if (!sliderCarrelloOpened){
	$('carrello').setStyle('visibility', 'visible');
		e = new Event(e);
		mySlideCarrello.slideIn();
		e.stop();
		if (!sliderCarrelloLoaded){
			fillCart();		
			sliderCarrelloLoaded = true;
		}
		sliderCarrelloOpened = true;		
	}

}

/*
function: fillCart
	riempie il carrello via ajax
*/
function fillCart(){
	var myurl=basepath+'/user/slider_carrello.htm';
	myRand=parseInt(Math.random()*99999999);  // cache buster
	myurl = myurl + "?rand=" + myRand; 
	myCall =new Ajax(myurl, {
		method: 'get',
		evalScripts: true,
		update: $('elencoCarrello') 
		});
	myCall.setHeader('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
	myCall.setHeader('Last-Modified: Mon, 26 Jul 2997 05:00:00 GMT');
	myCall.setHeader('Cache-Control: no-store, no-cache, must-revalidate');
	myCall.setHeader('Cache-Control: post-check=0, pre-check=0');
	myCall.setHeader('Pragma: no-cache');
	myCall.request();
}

/*
function: fillBookmark
	riempie i Bookmark via ajax
*/
function fillBookmark(){
	var myurl=basepath+'user/slider_bookmarks.htm';
	myRand=parseInt(Math.random()*99999999);  // cache buster
	myurl = myurl + "?rand=" + myRand; 
	myCall =new Ajax(myurl, {
		method: 'get',
		evalScripts: true,
		update: $('elencoBookmarks') 
		});
	myCall.setHeader('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
	myCall.setHeader('Last-Modified: Mon, 26 Jul 2997 05:00:00 GMT');
	myCall.setHeader('Cache-Control: no-store, no-cache, must-revalidate');
	myCall.setHeader('Cache-Control: post-check=0, pre-check=0');
	myCall.setHeader('Pragma: no-cache');
	myCall.request();
}

/*
function: addBookmark
	aggiunge un'opera ai bookmarks

Arguments:
	id - id dell'opera
	msg - messaggio di conferma aggiunta
*/
function addBookmark(id, msg) {
	if (sliderPreferitiOpened){
		mySlidePreferiti.slideOut();
		};
	
	new Ajax(basepath+'/user/bookmark_add.htm?idOpera='+id, {
		method: 'get',
		onComplete: function(){
			alert(msg);
			sliderPreferitiLoaded=false;
			sliderPreferitiOpened=false;
			}
		}).request();
}

/*
function: delBookmark
	cancella un'opera dai bookmarks

Arguments:
	id - id dell'opera
	askSure - domanda di richiesta conferma
	msg - messaggio di conferma cancellazione
*/
function delBookmark(id) {
	new Ajax(basepath+'/user/bookmark_remove.htm?idBkm='+id, {
		method: 'get',
		onComplete: function(){
			fillBookmark();
		}
		}).request();
}

/*
Function: setupSlide
	inizializza le slide
*/

function setupSlide(){
	mySlidePreferiti= new Fx.Slide('preferiti', {mode: 'horizontal'});
	wrapper2 = $('preferiti').getParent();
	wrapper2.setStyle('position', 'absolute');
	wrapper2.setStyle('top', '250px');
	wrapper2.setStyle('left', '0px');
	mySlidePreferiti.hide();
		
	$('linkPreferiti').addEvent('click', apriPreferiti);
	
	$('slideoutPreferiti').addEvent('click', function(e){
		e = new Event(e);
		mySlidePreferiti.slideOut();
		sliderPreferitiOpened=false;
		e.stop();
	});

}

var apriPreferiti = function(e){
	if (sliderCarrelloOpened){
		sliderCarrelloOpened = false;		
		mySlideCarrello.slideOut();
	}
	if (!sliderPreferitiOpened){
	$('preferiti').setStyle('display', 'block');
		e = new Event(e);
		mySlidePreferiti.slideIn();
		e.stop();
		if (!sliderPreferitiLoaded){
			fillBookmark();		
			sliderPreferitiLoaded = true;
		}
		sliderPreferitiOpened = true;		
	}

}

/*
function: createWindow
	crea una finestra modale 800x600 e la riempie con la risposta dell'url

Arguments:
	url - pagina da chiamare via ajax
	id - id dell'elemento HTML da riempire con la risposta ajax
*/
function createWindow(url, id, popupId, urlBack, w, h){
	w = w || 800;
	h = h || 600;
	
	// creo il div popup
	win = new Windoo({
			width: w,
			height: h,
			id: popupId,
			title: '',
			theme: Windoo.Themes.alphacube,
			shadow: false,
			destroyOnClose: true,
			container: false,
			buttons: {close: true, minimize: false, maximize: false},
			resizable: false,
			draggable: true,
			modal: true,
			ghost: {resize: false, move: false}
		})
	
	//creo il div (non visibile) che riempirò con la chiamata ajax e lo inserisco nel dom appendendolo ad un div esistente
	//questo passaggio potrebbe essere più elegante, ma è importante che il mio div sia nel dom	
	var myDiv = '<div id="'+id+'" style="display:none;"></div>'; 	
	$('divBuffer').setHTML(myDiv);
			 
	$(id).setHTML('');
	
	// chiamata ajax		 
	new Ajax(url, {
		data: {'urlBack': urlBack},
		method: 'get',
		evalScripts: true,
		update: id
	}).request();	
	
	//mostro il tutto
	$(id).setStyle('display', 'block');
	win.adopt($(id)).show();
	// alert(0);
}


/*
function: updateWindow
	crea una finestra modale 800x600 e la riempie con la risposta dell'url

Arguments:
	url - pagina da chiamare via ajax
	id - id dell'elemento HTML da riempire con la risposta ajax
*/
function updateWindow(url, id, popupId, w, h){
	w = w || 800;
	h = h || 600;
	
	//creo il div (non visibile) che riempirò con la chiamata ajax e lo inserisco nel dom appendendolo ad un div esistente
	//questo passaggio potrebbe essere più elegante, ma è importante che il mio div sia nel dom	
	var myDiv = '<div id="'+id+'" style="display:none;"></div>'; 	
	$('divBuffer').setHTML(myDiv);
			 
	// chiamata ajax		 
	new Ajax(url, {
		method: 'get',
		evalScripts: true,
		update: id
	}).request();	
	
	//mostro il tutto
	$(id).setStyle('display', 'block');
	win.adopt($(id)).show();
}

/*
function: createIFrameWindow
	crea una finestra iframe per le immagini piramidali

Arguments:
	myurl - pagina da chiamare nell'iframe
*/
function createIFrameWindow(myurl){
	
	// creo il div popup
	win = new Windoo({
			width: 800,
			height: 600,
			id: 'iFramePopup',
			title: '',
			type: 'iframe',			
			theme: Windoo.Themes.alphacube,
			shadow: false,
			destroyOnClose: false,
			container: false,
			buttons: {close: true, minimize: false, maximize: true},
			resizable: true,
			draggable: true,
			modal: true,
			url: myurl,
			ghost: {resize: false, move: false}
		}).show();
	
}

/*
function: sendForm

Arguments:
	e - evento submit della form
*/
function sendForm(urlBack, idDiv, idForm){
	
	//spedisco il contenuto della form via ajax
	$(idForm).send({
		evalScripts: true,
		onComplete: function(text, xml){
			ajaxResponseString = text;
			//se il risultato è un file che contiene la stringa 'ok' faccio
			//una redirect alla manageusers
			if (ajaxResponseString == 'ok') {
				window.location = urlBack;
			}
			//altrimenti riempio il div opportuno con il risultato
			else {	
				$(idDiv).empty().setHTML(ajaxResponseString);
			}
		}
	})
}

/*
fuction: toggleBlock
	mostra/nasconde una sezione
	
Arguments:
	id  - id dell'elemento da mostrare/nascondere	
	img - immagine sui si è cliccato	
	src - url dell'immagine da associare	
	title - title da associare all'immagine	
*/
function toggleBlock (img, id, srcOpen, titleOpen, srcClose, titleClose){
	sezione = $(id);
	if (sezione.getStyle('display') == 'none'){
		sezione.setStyle('display', 'block');
		img.src=srcClose;
		img.title=titleClose;
		img.alt=titleClose;
	} else {
		sezione.setStyle('display', 'none');
		img.src=srcOpen;
		img.title=titleOpen;
		img.alt=titleOpen;
	}
}
