//per upload con iframe
var iFrameFormRequest = new Class({

	Implements: [Options, Events],

	options: { /*
		onRequest: function(){},
		onComplete: function(data){},
		onFailure: function(){}, */
		eventName: 'submit'
	},

	initialize: function(form, options){
		this.setOptions(options);
		var frameId = this.frameId = String.uniqueID();
		var loading = false;
		
		this.form = document.id(form);

		this.formEvent = function()
		{
			if(options.onSubmit())
			{
				loading = true;
				this.fireEvent('request');
			}
		}.bind(this);

		this.iframe = new IFrame({
			name: frameId,
			styles: {
				display: 'none'
			},
			src: 'about:blank',
			events: {
				load: function(){
					if (loading){
						var doc = this.iframe.contentWindow.document;
						//doc.domain = "auguri.it";
						if (doc && doc.location.href != 'about:blank'){
							this.fireEvent('complete', doc.body.innerHTML);
						} else {
							this.fireEvent('failure');
						}
						loading = false;
					}
				}.bind(this)
			}
		}).inject(document.body);
		this.attach();
	},

	send: function(){
		this.form.submit();
	},

	attach: function(){
		this.target = this.form.get('target');
		this.form.set('target', this.frameId)
			.addEvent(this.options.eventName, this.formEvent);
	},

	detach: function(){
		this.form.set('target', this.target)
			.removeEvent(this.options.eventName, this.formEvent);
	},

	toElement: function(){
		return this.iframe;
	}

});

Element.implement('iFrameFormRequest', function(options){
	this.store('iFrameFormRequest', new iFrameFormRequest(this, options));
	return this;
});

//variabili locali
var nome_sito = 'http://biglietti.auguri.it/';
var owner_fronte = null;
var owner_retro = null;
var debugging = false;
var modificato = false;
var occasione = 'personale';
var immagini_utente = null;
var formato = null;
var id_biglietto = '';

document.domain = 'auguri.it';

function Inizializza_pagina_personalizzazione(dati_biglietto)
{
	owner_fronte = new Owner("fronte", formato);
	
	if(dati_biglietto != null)
		owner_fronte.Ripristina(dati_biglietto.fronte.oggetti, dati_biglietto.fronte.proprieta);
	
	if(formato == "A" || formato == "B" || formato == "D" || formato == "F")
	{
		owner_retro = new Owner("retro", formato);
		if(dati_biglietto != null)
			owner_retro.Ripristina(dati_biglietto.retro.oggetti, dati_biglietto.retro.proprieta);
	}

	mostraOwner(owner_fronte);
	
	Set_access_bar();
}

function Logout()
{
	Cookie.dispose("dati_biglietto", {path:'/', domain: '.auguri.it'});
	Cookie.dispose("id_utente", {path:'/', domain: '.auguri.it'});
	Cookie.dispose("email_utente", {path:'/', domain: '.auguri.it'});
	
	if(document.location.href.indexOf("biglietti_utente.php") > 0 || document.location.href.indexOf("main.php") > 0)
		document.location.href = "http://biglietti.auguri.it/";
	else
		Set_access_bar();
}

function Set_access_bar()
{	
	if($("access_bar") != null)
	{
		$("access_bar").destroy();
		$$(".titolo-pagina")[0].setStyle("padding","20px 0");
	}
	
	if(Cookie.read("email_utente") != null)
	{
		new Element("span",{id:"access_bar",html:'Ciao '+Cookie.read("email_utente")+' <a href="javascript:void(0)" onclick="Logout()">[Esci]</a> <a href="javascript:void(0)" onclick="Logout()" id="aiuto_esci" onmouseover="Tooltip_aiuto_esci()" onmouseout="ToolTip.instance($(\'aiuto_esci\')).hide()">[?]</a>'}).inject($("content"),'top');
		$$(".titolo-pagina")[0].setStyle("padding-top","7px");
	}
}

function Tooltip_aiuto_esci()
{
	var tooltip = ToolTip.instance($("aiuto_esci"), {
		autohide: true,
		position: 
		{
			position: 'middle',
			edge: 'left'
		}
	});
	
	tooltip.toolTip.setStyle("color","#000");
	tooltip.toolTip.setStyle("width","220px");
	
	tooltip.set('<div style="clear:both;"></div><br>Se questo computer è condiviso con altre persone, per la tua privacy, ti consigliamo di cliccare su [Esci] quando avrai terminato di usare questo servizio.<br><br>');
	tooltip.show();
}

function Is_upload_present(nome_immagine)
{
	var oggetti_fronte = owner_fronte.getOggetti();
	for(var i=0; i<oggetti_fronte.length; i++)
	{
		if(oggetti_fronte[i].get("tipo") == "upload" && oggetti_fronte[i].get("nome_file_immagine") == "img/creati/uploads_utenti/"+nome_immagine)
		{
			alert("Non puoi eleminare questa immagine perchè è inserita nel biglietto.\nCancellala prima dal biglietto.");
			return true;
		}
	}
	if(owner_retro != null)
	{
		var oggetti_retro = owner_retro.getOggetti();
		for(var i=0; i<oggetti_retro.length; i++)
		{
			if(oggetti_retro[i].get("tipo") == "upload" && oggetti_retro[i].get("nome_file_immagine") == "img/creati/uploads_utenti/"+nome_immagine)
			{
				alert("Non puoi eleminare questa immagine perchè è inserita nel biglietto.\nCancellala prima dal biglietto.");
				return true;
			}
		}
	}
	return false;
}

function Tooltip_zoom()
{
	var tooltip = ToolTip.instance($("zoom"), {
		autohide: false,
		position: 
		{
			position: 'centerBottom',
			edge: 'top'
		}
	});
	
	tooltip.toolTip.setStyle("width","200px");
	tooltip.set('<div style="clear:both;"></div><div style="color:#000;"><br>Per ingrandire digita "control +" <br><br>Per rimpicciolire digita "control -"</div>');

		
	tooltip.show();
}

function Tooltip_colore()
{
	var tooltip = ToolTip.instance($('colore_selezionato'), {
		autohide: false,
		position: 
		{
			position: 'centerBottom',
			edge: 'top'
		}
	});
	
	tooltip.toolTip.setStyle("width","180px");
	
	var tooltip_box = new Element("div",{'class':"tooltip_box", styles:{"width":"168px"}});
	//per lo scalino del chiudi
	new Element("div",{styles:{"clear":"both"}}).inject(tooltip_box);
	
	for(var i=0; i< database.colori.length; i++)
	{
		new Element('div',{'class':"colore", colore:database.colori[i], styles:
			{
				'background-color': '#'+database.colori[i]
			},
			events:
			{
				'mouseover': function(){
					this.addClass("over");
				},
				'mouseout': function(){
					this.removeClass("over");	
				},
				'click': function(){
					$("colore_selezionato").setStyle("background-color",this.getStyle("background-color"));
					$("colore_selezionato").set("colore",this.get("colore"));
					tooltip.hide();
				}
			}
		}).inject(tooltip_box);
	}
	tooltip.set(tooltip_box);
	tooltip.show();
}

function Tooltip_font()
{
	var tooltip = ToolTip.instance($('font_selezionato'), {
		autohide: false,
		position: 
		{
			position: 'centerBottom',
			edge: 'top'
		}
	});
	
	tooltip.toolTip.setStyle("width","245px");
	
	var tooltip_box = new Element("div",{'class':"tooltip_box"});
	//per lo scalino del chiudi
	new Element("br",{styles:{"clear":"both"}}).inject(tooltip_box);
	
	var div_fonts = new Element("div",{styles:{"width":"245px","height":"310px","overflow":"auto"}}).inject(tooltip_box);
	 
	for(var i=0; i< database.fonts.length; i++)
	{
		new Element('div',{'class':"font", font:database.fonts[i], styles:
			{
				'background-image': 'url(img/font/'+database.fonts[i]+'.png)'
			},
			events:
			{
				'mouseover': function(){
					this.addClass("over");
				},
				'mouseout': function(){
					this.removeClass("over");	
				},
				'click': function(){
					$("font_selezionato").setStyle("background-image",this.getStyle("background-image"));
					$("font_selezionato").set("font",this.get("font"));
					tooltip.hide();
				}
			}
		}).inject(div_fonts);
	}
	tooltip.set(tooltip_box);
	tooltip.show();
}

function Tooltip_scritte_pronte()
{
	var tooltip = ToolTip.instance($("button_scritte_pronte"), {
		autohide: false,
		position: 
		{
			position: 'centerBottom',
			edge: 'top'
		}
	});
	
	var tooltip_box = new Element("div",{'class':"tooltip_box"});
	//per lo scalino del chiudi
	new Element("br",{styles:{"clear":"both"}}).inject(tooltip_box);
	
	var container = new Element("div",{styles:{"height":"300px","overflow":"auto","width":"520px"}}).inject(tooltip_box);
	database.clips["Scritte"].sort();
	for(var e=0; e< database.clips["Scritte"].length; e++)
	{
		new Element('div',{'class':"clip", immagine:database.clips['Scritte'][e], styles:
			{
				'background-image': 'url(img/clip_scritte/Scritte/'+database.clips['Scritte'][e]+'_min.png)'
			},
			events:
			{
				'mouseover': function(){
					this.addClass("over");
				},
				'mouseout': function(){
					this.removeClass("over");	
				},
				'click': function(){
					Aggiungi_clip(this.get("immagine"),getCurrentOwner());
					tooltip.hide();
				}
			}
		}).inject(container);
	}
	
	tooltip.set(tooltip_box);
	tooltip.show();
}

function Get_dir_clip(nome, obj)
{
	for(var categoria in obj)
	{
		if(categoria == nome)
		{
			return obj[categoria];
		}
		else if(obj[categoria].constructor != Array && isNaN(categoria))
		{
			var dir = Get_dir_clip(nome, obj[categoria]);
			if(dir != null)
				return dir;
		}
	}
	return null;
}

function Get_padre_dir_clip(nome, obj)
{
	if(nome == "root")
		return "root";
		
	for(var categoria in obj)
	{
		if(obj[categoria].constructor != Array && isNaN(categoria))
		{
			for(var categ_2 in obj[categoria])
			{
				if( categ_2 == nome)
					return categoria;	
			}
			return Get_padre_dir_clip(nome, obj[categoria]);
		}
	}
	return "root";
}

function Get_path_clip(img, obj, path)
{		
	for(var categoria in obj)
	{
		if(obj[categoria].constructor == Array)
		{
			for(var i=0; i< obj[categoria].length; i++)
				if(obj[categoria][i] == img)
					return path+categoria+"/";
		}
		else
		{
			if(isNaN(categoria))
			{
				var new_path = Get_path_clip(img, obj[categoria], path+categoria+"/");
				if(new_path != path+categoria+"/")
					return new_path;
			}
			else
			{
				if(obj[categoria] == img)
					return path;
			}
		}
	}
	return path;
}

function Sort_array_associativo(arr){
	// Setup Arrays
	var sortedKeys = new Array();
	var sortedObj = {};
 
	// Separate keys and sort them
	for (var i in arr){
		sortedKeys.push(i);
	}
	sortedKeys.sort();
 
	// Reconstruct sorted obj based on keys
	for (var i=0; i<sortedKeys.length; i++){
		sortedObj[sortedKeys[i]] = arr[sortedKeys[i]];
	}
	return sortedObj;
}

function Set_pannello_clip(dir, padre, pannello, tooltip)
{
	pannello.empty();
	
	if(padre != "root")
	{
		new Element("div",{html: "<b>Torna indietro</b>", 'class':'categoria_clip', padre:padre,
				events:{
					'click': function()
					{			
						pannello.empty();
						var padre_dir = Get_padre_dir_clip(this.get("padre"), database.clips);
						
						if(padre_dir == "root")
							Set_pannello_clip(database.clips, "root", pannello, tooltip);
						else
							Set_pannello_clip(Get_dir_clip(padre_dir,database.clips), padre_dir, pannello, tooltip);
					},
					'mouseover': function(){
						this.addClass("over");
					},
					'mouseout': function(){
						this.removeClass("over");
					}
				}
		}).inject(pannello);
	}
	
	var panel_clip = new Element('div',{styles:{"height":"200px","overflow":"auto","width":"100%"}});
	
	
	if(dir.constructor === Array)//è la foglia e visualizzo i clip
	{
		for(var i=0; i< dir.length; i++)
		{
			var path = Get_path_clip(dir[i], database.clips, "/");
			new Element('div',{'class':"clip", immagine:dir[i], styles:
				{
					'background-image': 'url(img/clip_scritte'+path+dir[i]+'_min.png)'
				},
				events:
				{
					'mouseover': function(){
						this.addClass("over");
					},
					'mouseout': function(){
						this.removeClass("over");	
					},
					'click': function(){
						Aggiungi_clip(this.get("immagine"),getCurrentOwner());
						tooltip.hide();
					}
				}
			}).inject(panel_clip);
		}
	}
	else // è un oggetto e richiamo la funzione ricorsiva per le sotto categorie
	{
		dir = Sort_array_associativo(dir);
		
		for(var categoria in dir)
		{
			if(categoria != "Scritte")
			{
				if(isNaN(categoria))
				{
					new Element("div",{html: categoria.replace(/_/g,' '), 'class':'categoria_clip', padre:padre,
						events:{
							'click': function()
							{			
								Set_pannello_clip(Get_dir_clip(this.get('html').replace(/ /g,'_'), database.clips),this.get("html"),pannello,tooltip)
							},
							'mouseover': function(){
								this.addClass("over");
							},
							'mouseout': function(){
								this.removeClass("over");
							}
						}
					}).inject(pannello);
				}
				else
				{
					//visualizza i file
					var path = Get_path_clip(dir[categoria], database.clips, "/");
					new Element('div',{'class':"clip", immagine:dir[categoria], styles:
						{
							'background-image': 'url(img/clip_scritte'+path+dir[categoria]+'_min.png)'
						},
						events:
						{
							'mouseover': function(){
								this.addClass("over");
							},
							'mouseout': function(){
								this.removeClass("over");	
							},
							'click': function(){
								Aggiungi_clip(this.get("immagine"),getCurrentOwner());
								tooltip.hide();
							}
						}
					}).inject(panel_clip);
				}
			}
		}
	}
	
	new Element("div",{styles:{"clear":"both"}}).inject(pannello);
	panel_clip.inject(pannello);
	
}

function Tooltip_clip()
{
	var tooltip = ToolTip.instance($("button_clip"), {
		autohide: false,
		position: 
		{
			position: 'centerBottom',
			edge: 'top'
		}
	});
	
	var tooltip_box = new Element("div",{'class':"tooltip_box"});
	//per lo scalino del chiudi
	new Element("div",{styles:{"clear":"both"}}).inject(tooltip_box);
	
	var box_clip = new Element("div",{id:"clips"});
	
	Set_pannello_clip(database.clips, "root", box_clip, tooltip);

	new Element("div",{styles:{"clear":"both"}}).inject(tooltip_box);
	
	box_clip.inject(tooltip_box);

	tooltip.set(tooltip_box);
	tooltip.show();
}

function Tooltip_cornice(tipo)//tipo=sfondi || cornici
{
	var tooltip = ToolTip.instance($("button_"+tipo), {
		autohide: false,
		position: 
		{
			position: 'centerBottom',
			edge: 'top'
		}
	});
	var tooltip_box = new Element("div",{'class':"tooltip_box"}); 
	//per lo scalino del chiudi
	new Element("br",{styles:{"clear":"both"}}).inject(tooltip_box);
	
	var container = new Element("div",{styles:{"height":"300px","overflow":"auto","width":"520px"}}).inject(tooltip_box);
	
	for(var i=0; i< database.basi[tipo].length; i++)
	{
		new Element('div',{'class':"sfondo", sfondo:database.basi[tipo][i], styles:
			{
				'background-image': 'url(img/sfondi_cornici_temi/'+database.basi[tipo][i]+'_min.jpg)'
			},
			events:
			{
				'mouseover': function(){
					this.addClass("over");
				},
				'mouseout': function(){
					this.removeClass("over");	
				},
				'click': function(){
					
					//visualizza la selta della posizione della cornice se formato A retro o B retro
					var current_owner = getCurrentOwner();
					 if(current_owner.tipo == "retro" && current_owner.formato == "A")
					 {
						var tooltip_A = ToolTip.instance($("button_"+tipo), {
							autohide: false,
							position: 
							{
								position: 'centerBottom',
								edge: 'top'
							}
						});
						var sfondo = this.get("sfondo");
						 
						var tooltip_box_A = new Element("div",{'class':"tooltip_box"});
						//per lo scalino del chiudi
						new Element("div",{styles:{"clear":"both"}}).inject(tooltip_box_A);
						
						var ico = [{ico:"ico_posizione_sfondo_verticale_sx.png",posizione:1},
								   {ico:"ico_posizione_sfondo_verticale_dx.png",posizione:2},
								   {ico:"ico_posizione_sfondo_verticale_dx_sx.png",posizione:3},
								   {ico:"ico_posizione_sfondo_verticale_unico.png",posizione:4}];
						
						for(var i=0; i< ico.length; i++)
						{
							if(tipo != "sfondi" || ico[i].posizione != 3)//gli sfondi non hanno la posizione 3
							{
								new Element('div',{'class':"posizione_cornice", posizione:ico[i].posizione, sfondo:sfondo, styles:
									{
										'background-image': 'url(img/'+ico[i].ico+')'
									},
									events:
									{
										'mouseover': function(){
											this.addClass("over");
										},
										'mouseout': function(){
											this.removeClass("over");	
										},
										'click': function(){
											Disposizione_cornice(this.get("sfondo"),this.get("posizione")); 
											tooltip_A.hide();
										}
									}
								}).inject(tooltip_box_A);
							}
						}

						tooltip_A.set(tooltip_box_A);
						tooltip_A.show();
					}
					else if(current_owner.tipo == "retro" && current_owner.formato == "B")
					{
						var tooltip_B = ToolTip.instance($("button_"+tipo), {
							autohide: false,
							position: 
							{
								position: 'centerBottom',
								edge: 'top'
							}
						});
						var sfondo = this.get("sfondo");
						 
						var tooltip_box_B = new Element("div",{'class':"tooltip_box"});
						//per lo scalino del chiudi
						new Element("div",{styles:{"clear":"both"}}).inject(tooltip_box_B);
						
						var ico = [{ico:"ico_posizione_sfondo_orizzontale_sopra.png",posizione:1},
								   {ico:"ico_posizione_sfondo_orizzontale_sotto.png",posizione:2},
								   {ico:"ico_posizione_sfondo_orizzontale_sopra_sotto.png",posizione:3},
								   {ico:"ico_posizione_sfondo_orizzontale_unico.png",posizione:4}];
						
						for(var i=0; i< ico.length; i++)
						{
							if(tipo != "sfondi" || ico[i].posizione != 3)//gli sfondi non hanno la posizione 3
							{
								new Element('div',{'class':"posizione_cornice", posizione:ico[i].posizione, sfondo:sfondo, styles:
									{
										'background-image': 'url(img/'+ico[i].ico+')'
									},
									events:
									{
										'mouseover': function(){
											this.addClass("over");
										},
										'mouseout': function(){
											this.removeClass("over");	
										},
										'click': function(){
											Disposizione_cornice(this.get("sfondo"),this.get("posizione")); 
											tooltip_B.hide();
										}
									}
								}).inject(tooltip_box_B);
							}
						}

						tooltip_B.set(tooltip_box_B);
						tooltip_B.show();
					}
					else
	 				{
						Disposizione_cornice(this.get("sfondo"), 1);
						tooltip.hide();
					}
				}
			}
		}).inject(container);
	}
	
	tooltip.set(tooltip_box);
	tooltip.show();
}

function Disposizione_cornice(cornice, disposizione)
{
	owner = getCurrentOwner();
	
	if(owner.formato == "A" && owner.tipo == "retro")
	{
		if(disposizione == "1")
		{
			if(cornice.indexOf("sfondo") >= 0)
				owner.cornice1 = cornice+'_vert_doppia';
			else
				owner.cornice1 = cornice+'_vert';
		}
		else if(disposizione == "2")
		{
			if(cornice.indexOf("sfondo") >= 0)
				owner.cornice2 = cornice+'_vert_doppia';
			else
				owner.cornice2 = cornice+'_vert';
		}
		else if(disposizione == "3")
		{
			if(cornice.indexOf("sfondo") >= 0)
			{
				owner.cornice1 = cornice+'_vert_doppia';
				owner.cornice2 = cornice+'_vert_doppia';
			}
			else
			{
				owner.cornice1 = cornice+'_vert';
				owner.cornice2 = cornice+'_vert';
			}
		}
		else if(disposizione == "4")
		{
			owner.cornice1 = cornice+'_vert_doppia';
			owner.cornice2 = cornice+'_vert_doppia';
		}
	}
	else if(owner.formato == "B" && owner.tipo == "retro")
	{
		if(disposizione == "1")
		{
			if(cornice.indexOf("sfondo") >= 0)
				owner.cornice1 = cornice+'_oriz_doppia';
			else
				owner.cornice1 = cornice+'_oriz';
		}
		else if(disposizione == "2")
		{
			if(cornice.indexOf("sfondo") >= 0)
				owner.cornice2 = cornice+'_oriz_doppia';
			else
				owner.cornice2 = cornice+'_oriz';
		}
		else if(disposizione == "3")
		{
			if(cornice.indexOf("sfondo") >= 0)
			{
				owner.cornice1 = cornice+'_oriz_doppia';
				owner.cornice2 = cornice+'_oriz_doppia';
			}
			else
			{
				owner.cornice1 = cornice+'_oriz';
				owner.cornice2 = cornice+'_oriz';
			}
		}
		else if(disposizione == "4")
		{
			owner.cornice1 = cornice+'_oriz_doppia';
			owner.cornice2 = cornice+'_oriz_doppia';
		}
	}
	else if(owner.formato == "A" && owner.tipo == "fronte")
	{
		owner.cornice1 = "nessuna";
		if(cornice.indexOf("sfondo") >= 0)
			owner.cornice2 = cornice+'_vert_doppia';
		else
			owner.cornice2 = cornice+'_vert';
	}
	else if(owner.formato == "B" && owner.tipo == "fronte")
	{
		owner.cornice1 = "nessuna";
		if(cornice.indexOf("sfondo") >= 0)
			owner.cornice2 = cornice+'_oriz_doppia';
		else
			owner.cornice2 = cornice+'_oriz';
	}
	else if(owner.formato == "C" || owner.formato == "D")
	{	
		if(cornice.indexOf("sfondo") >= 0)
			owner.cornice1 = cornice+'_vert_doppia';
		else
			owner.cornice1 = cornice+'_vert';
		owner.cornice2 = "nessuna";
	}
	else
	{
		if(cornice.indexOf("sfondo") >= 0)
			owner.cornice1 = cornice+'_oriz_doppia';
		else
			owner.cornice1 = cornice+'_oriz';
		owner.cornice2 = "nessuna";
	}
	
	Start_request("Operazione in corso...");
	var arr_image = new Array();
	if(owner.cornice1 != "nessuna")
		arr_image.push('img/sfondi_cornici_temi/'+owner.cornice1+'_rid.jpg');
	if(owner.cornice2 != "nessuna")
		arr_image.push('img/sfondi_cornici_temi/'+owner.cornice2+'_rid.jpg');
	
	var myImages = Asset.images(arr_image, {
		onComplete: function(){
			Aggiorna_cornice(owner); 
			End_request();
		}
	});
	
	Salva();
}

function Nessuna_cornice()
{
	//chiude eventuali tool tip aperti
	var tooltip = ToolTip.instance($("button_nessuna_cornice"));
	tooltip.hide();
	
	owner = getCurrentOwner();
	owner.cornice1 = "nessuna";
	owner.cornice2 = "nessuna";

	Start_request("Cancellazione sfondo...");
	
	(function(){Aggiorna_cornice(owner); End_request();}).delay(1200);
	
	Salva();
}

function Aggiorna_cornice(owner)
{
	if(owner.sfondo1 != null)
	{
		if(owner.cornice1 == "nessuna")
			owner.sfondo1.setStyle('background-image','');
		else
			owner.sfondo1.setStyle('background-image','url(img/sfondi_cornici_temi/'+owner.cornice1+'_rid.jpg)');
	}
	if(owner.sfondo2 != null)
	{
		if(owner.cornice2 == "nessuna")
		{
			owner.sfondo2.setStyle('background-image','');
		}
		else
		{
			if(owner.cornice2.indexOf("doppia") > 0)
			{
				owner.sfondo2.setStyle('background-image','url(img/sfondi_cornici_temi/'+owner.cornice2+'_rid.jpg)');
				if(owner.cornice2.indexOf("vert") > 0)
				{
					if(owner.tipo == "fronte")
						owner.sfondo2.setStyle('background-position','left');
					else
						owner.sfondo2.setStyle('background-position','right');
				}
				else
				{	
					if(owner.tipo == "fronte")
						owner.sfondo2.setStyle('background-position','top');
					else
						owner.sfondo2.setStyle('background-position','bottom');
				}
			}
			else
			{
				owner.sfondo2.setStyle('background-image','url(img/sfondi_cornici_temi/'+owner.cornice2+'_rid.jpg)');
				owner.sfondo2.setStyle('background-position','left');
			}
		}
	}
}

function Tooltip_immagini_personali()
{
	if(!Is_logged())
	{
		//richiama se stessa dopo aver effettuato l'accesso
		TB_show("Accesso utente","http://www.auguri.it/box_login_biglietti.php?w=600&h=300&f=Tooltip_immagini_personali");
		return;
	}
	
	Set_access_bar();
	
	if(immagini_utente == null)
	{
		var myRequest = new Request({
			url: nome_sito+'php/main.php', 
			method: 'post', 
			onRequest: function()
			{
				Start_request("Sto caricando le immagini");
			},
			onSuccess: function(responseText) 
			{
				if(debugging)
					alert(responseText);
				
				immagini_utente = JSON.decode(responseText);
				//richiama se stessa dopo aver caricato le nuove immagini
				
				End_request();
				Tooltip_immagini_personali();
			}
		});
		
		if(debugging)
			alert("a=get_foto_utente");
		myRequest.send("a=get_foto_utente");
		return;
	}
	
	var tooltip = ToolTip.instance($("button_immagini_personali"), {
		autohide: false,
		position: 
		{
			position: 'centerBottom',
			edge: 'top'
		}
	});
	
	tooltip.toolTip.setStyle("width","320px");
	
	var tooltip_box = new Element("div",{'class':"tooltip_box"});
	//per lo scalino del chiudi
	new Element("br",{styles:{"clear":"both"}}).inject(tooltip_box);
	
	//la form si inserisce con html perchè input type file da errore di sicurezza
	new Element("div",{html: 'Prendi una immagine dal tuo computer:<br><form action="http://biglietti.auguri.it/php/main.php" method="post" enctype="multipart/form-data" id="upload_form" name="upload_form"><input type="hidden" value="carica_immagine" name="a" /><input type="hidden" name="id_utente" id="upload_id_utente" /><input type="file" value="Carica una foto" name="image" id="immagine_da_caricare"/><input type="submit" value="Carica" id="upload_submit" /></form>', styles:{color:"#000"}}).inject(tooltip_box);
	
	var container = new Element("div",{id:"foto_utente", styles:{"height":"300px","overflow":"auto","width":"320px","position":"relative"}}).inject(tooltip_box);

	for(var i=0; i<immagini_utente.length; i++)
		Get_immagine_upload(immagini_utente[i],tooltip).inject(container,'top');
	
	tooltip.set(tooltip_box);
	
	//per risposta dell'upload
	new iFrameFormRequest("upload_form",{ 
		onSubmit: function()
		{
			if($('immagine_da_caricare').get("value") == "")
			{
				alert("Nessun file selezionato!");
				return false;
			}
			return true;
		},
		onRequest: function(){Start_request("Sto aggiungendo la foto");},
		onComplete: function(response)
		{
			if(debugging)
				alert(response);
			eval("var risposta = "+response);
			if(risposta.messaggio != undefined)
			{
				alert(risposta.messaggio);
			}
			else
			{
				if(immagini_utente == null)
					immagini_utente = new Array();
				immagini_utente.push(risposta.immagine);
				Get_immagine_upload(risposta.immagine, tooltip).inject($('foto_utente'),'top');
			}
				
			End_request();
		}
   });
		
	tooltip.show();
}

function getCurrentOwner()
{
	if(owner_retro != null && owner_fronte.monitor.getStyle("display") == "none")
		return owner_retro;
	else
		return owner_fronte;
}

function mostraOwner(owner)
{
	var disp1 = "none";
	var disp2 = "block";
	
	if(owner.tipo == "fronte")
	{
		disp2 = "none";
	    disp1 = "block";
	}
	
	owner_fronte.monitor.setStyle("display",disp1);
	
	$("area_biglietto").setStyle("width",owner.larghezza_monitor+'px');
	$("area_biglietto").setStyle("height",owner.altezza_monitor+'px');
	
	if(owner_fronte.sfondo1 != null)
		owner_fronte.sfondo1.setStyle("display",disp1);
		
	if(owner_fronte.sfondo2 != null)
		owner_fronte.sfondo2.setStyle("display",disp1);
	
	if(owner_retro != null)
	{
		owner_retro.monitor.setStyle("display",disp2);
		
		if(owner_retro.sfondo1 != null)
			owner_retro.sfondo1.setStyle("display",disp2);
		if(owner_retro.sfondo2 != null)
			owner_retro.sfondo2.setStyle("display",disp2);
	}
	
	//aggiorno le label
	if(owner.tipo == "fronte")
	{
		if(owner.formato == "A")
		{
			$('td_label_sx').set("html",'<table border="0" cellpadding="0" cellspacing="0"><tr><td><div class="div_btn_lati">Biglietto verticale<br> pieghevole<br><img src="../img/ico-formato-biglietto-vert-pieghevole-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato_selected">Copertina<br><img src="../img/ico-formato-biglietto-vert-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato" onclick="invertiOwner()">Interno<br><img src="../img/ico-formato-biglietto-vert-pieghevole-interno.png" border="0"/></div></td></tr></table>');
			$('td_label_dx').set("html",'<div onclick="invertiOwner()" ><img src="../img/btn-vai-all-interno.png" border="0" style="cursor:pointer;"/></div>');
		}
		else if(owner.formato == "B")
		{
			$('td_label_sx').set("html",'<table border="0" cellpadding="0" cellspacing="0"><tr><td><div class="div_btn_lati">Biglietto orizzontale<br> pieghevole<br><img src="../img/ico-formato-biglietto-oriz-pieghevole-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato_selected">Copertina<br><img src="../img/ico-formato-biglietto-oriz-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato" onclick="invertiOwner()">Interno<br><img src="../img/ico-formato-biglietto-oriz-pieghevole-interno.png" border="0"/></div></td></tr></table>');
			$('td_label_dx').set("html",'<div onclick="invertiOwner()" ><img src="../img/btn-vai-all-interno.png" border="0" style="cursor:pointer;"/></div>');
		}
		else if(owner.formato == "C")
		{
			$('td_label_sx').set("html",'<table border="0" cellpadding="0" cellspacing="0"><tr><td><div class="div_btn_lati">Biglietto verticale<br> solo fronte<br><img src="../img/ico-formato-biglietto-vert-solo-fronte.png" border="0"/></div></td></tr></table>');
			$('td_label_dx').set("html",'');
		}
		else if(owner.formato == "D")
		{
			$('td_label_sx').set("html",'<table border="0" cellpadding="0" cellspacing="0"><tr><td><div class="div_btn_lati">Biglietto verticale<br> fronte / retro<br><img src="../img/ico-formato-biglietto-vert-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato_selected">Fronte<br><img src="../img/ico-formato-biglietto-vert-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato" onclick="invertiOwner()">Retro<br><img src="../img/ico-formato-biglietto-vert-solo-fronte.png" border="0"/></div></td></tr></table>');
			$('td_label_dx').set("html",'<div onclick="invertiOwner()" ><img src="../img/btn-gira-biglietto.png" border="0" style="cursor:pointer;"/></div>');
		}
		else if(owner.formato == "E")
		{
			$('td_label_sx').set("html",'<table border="0" cellpadding="0" cellspacing="0"><tr><td><div class="div_btn_lati">Biglietto orizzontale<br> solo fronte<br><img src="../img/ico-formato-biglietto-oriz-solo-fronte.png" border="0"/></div></td></tr></table>');
			$('td_label_dx').set("html",'');
		}
		else if(owner.formato == "F")
		{
			$('td_label_sx').set("html",'<table border="0" cellpadding="0" cellspacing="0"><tr><td><div class="div_btn_lati">Biglietto orizzontale<br> fronte / retro<br><img src="../img/ico-formato-biglietto-oriz-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato_selected">Fronte<br><img src="../img/ico-formato-biglietto-oriz-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato" onclick="invertiOwner()">Retro<br><img src="../img/ico-formato-biglietto-oriz-solo-fronte.png" border="0"/></div></td></tr></table>');
			$('td_label_dx').set("html",'<div onclick="invertiOwner()" ><img src="../img/btn-gira-biglietto.png" border="0" style="cursor:pointer;"/></div>');
		}
	}
	else
	{
		if(owner.formato == "A")
		{
			$('td_label_sx').set("html",'<table border="0" cellpadding="0" cellspacing="0"><tr><td><div class="div_btn_lati">Biglietto verticale<br> pieghevole<br><img src="../img/ico-formato-biglietto-vert-pieghevole-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato" onclick="invertiOwner()">Copertina<br><img src="../img/ico-formato-biglietto-vert-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato_selected">Interno<br><img src="../img/ico-formato-biglietto-vert-pieghevole-interno.png" border="0"/></div></td></tr></table>');
			$('td_label_dx').set("html",'<div onclick="invertiOwner()" ><img src="../img/btn-vai-alla-copertina.png" border="0" style="cursor:pointer;"/></div>');
		}
		else if(owner.formato == "B")
		{
			$('td_label_sx').set("html",'<table border="0" cellpadding="0" cellspacing="0"><tr><td><div class="div_btn_lati">Biglietto orizzontale<br> pieghevole<br><img src="../img/ico-formato-biglietto-oriz-pieghevole-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato" onclick="invertiOwner()">Copertina<br><img src="../img/ico-formato-biglietto-oriz-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato_selected">Interno<br><img src="../img/ico-formato-biglietto-oriz-pieghevole-interno.png" border="0"/></div></td></tr></table>');
			$('td_label_dx').set("html",'<div onclick="invertiOwner()" ><img src="../img/btn-vai-alla-copertina.png" border="0" style="cursor:pointer;"/></div>');
		}
		else if(owner.formato == "D")
		{
			$('td_label_sx').set("html",'<table border="0" cellpadding="0" cellspacing="0"><tr><td><div class="div_btn_lati">Biglietto verticale<br> fronte / retro<br><img src="../img/ico-formato-biglietto-vert-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato" onclick="invertiOwner()">Fronte<br><img src="../img/ico-formato-biglietto-vert-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato_selected">Retro<br><img src="../img/ico-formato-biglietto-vert-solo-fronte.png" border="0"/></div></td></tr></table>');
			$('td_label_dx').set("html",'<div onclick="invertiOwner()" ><img src="../img/btn-gira-biglietto.png" border="0" style="cursor:pointer;"/></div>');
		}
		else if(owner.formato == "F")
		{
			$('td_label_sx').set("html",'<table border="0" cellpadding="0" cellspacing="0"><tr><td><div class="div_btn_lati">Biglietto orizzontale<br> fronte / retro<br><img src="../img/ico-formato-biglietto-oriz-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato" onclick="invertiOwner()">Fronte<br><img src="../img/ico-formato-biglietto-oriz-solo-fronte.png" border="0"/></div></td></tr><tr><td><div class="div_btn_lati btn_cambio_lato_selected">Retro<br><img src="../img/ico-formato-biglietto-oriz-solo-fronte.png" border="0"/></div></td></tr></table>');
			$('td_label_dx').set("html",'<div onclick="invertiOwner()" ><img src="../img/btn-gira-biglietto.png" border="0" style="cursor:pointer;"/></div>');
		}
	}
}

function invertiOwner()
{
	if(getCurrentOwner() != owner_fronte)
		mostraOwner(owner_fronte);
	else
		mostraOwner(owner_retro);
}

function Get_immagine_upload(immagine, tooltip)
{
	var unique_id = String.uniqueID();

	var foto = new Element("div",
	{ 
		id:unique_id,
		'class': 'foto',
		immagine: immagine,
		styles: {background: 'url(img/creati/uploads_utenti/'+immagine+'_min.jpg) no-repeat #FFF'},
		events: {
			click: function(){
				Aggiungi_foto(this.get("immagine")+".jpg",getCurrentOwner());
				tooltip.hide();
			},
			mouseover: function(){
				this.addClass("over");
			},
			mouseout: function(){
				this.removeClass("over");
			}
		}
	});
							
	new Element("div",
	{ 
		title: 'Elimina immagine',
		'class': 'elimina_upload',
		immagine: immagine,
		events: {
			click: function(event)
			{
				event.stopPropagation();
				
				if(Is_upload_present(this.get("immagine")+".jpg"))
					return;
				
				if(!confirm("Sicuro di voler eliminare questa immagine?"))
					return;
					
				var myRequest = new Request({
					url: nome_sito+'php/main.php', 
					method: 'post', 
					onRequest: function(){Start_request("Sto eliminando l'immagine");},
					onSuccess: function(responseText) 
					{
						if(debugging)
							alert(responseText);
						
						responce = JSON.decode(responseText);
						
						if(responce.messaggio == "ok")
						{
							$(unique_id).destroy();
							immagini_utente = responce.dati;
						}
						else
						{
							alert(responce.messaggio);
						}
						
						End_request();
					}
				});
				if(debugging)
					alert("a=elimina_foto_utente&nome_foto="+this.get("immagine"));
				myRequest.send("a=elimina_foto_utente&nome_foto="+this.get("immagine"));
			}
		}
	}).inject(foto);
	
	return foto;
}

function Is_logged()
{
	if(Cookie.read("id_utente") == null)
		return false;
	return true;
}

Array.prototype.remove = function(itemToRemove) 
{
	for (var i = 0; i < this.length; i++)
		if (this[i] == itemToRemove)
			this.splice(i, 1);
}

function Owner(tipo, formato)
{
	//inizializzazione parametri
	this.formato = formato;
	this.tipo = tipo;

	//inserisce div per sfondi nel monitor a seconda del formato e del tipo
	if(tipo == "fronte")
	{
		if(formato == "A")
		{
			this.larghezza_monitor = 320;
			this.altezza_monitor = 473;
		}
		else if(formato == "B")
		{
			this.larghezza_monitor = 473;
			this.altezza_monitor = 320;
		}
		else if(formato == "C")
		{
			this.larghezza_monitor = 320;
			this.altezza_monitor = 473;
		}
		else if(formato == "D")
		{
			this.larghezza_monitor = 320;
			this.altezza_monitor = 473;
		}
		else if(formato == "E")
		{
			this.larghezza_monitor = 473;
			this.altezza_monitor = 320;
		}
		else if(formato == "F")
		{
			this.larghezza_monitor = 473;
			this.altezza_monitor = 320;
		}
	}
	else
	{
		if(formato == "A")
		{
			this.larghezza_monitor = 640;
			this.altezza_monitor = 473;
		}
		else if(formato == "B")
		{
			this.larghezza_monitor = 473;
			this.altezza_monitor = 640;
		}
		else if(formato == "D")
		{
			this.larghezza_monitor = 320;
			this.altezza_monitor = 473;
		}
		else if(formato == "F")
		{
			this.larghezza_monitor = 473;
			this.altezza_monitor = 320;
		}
	}
	
	if(tipo == "retro" && formato == "A")
	{
		this.sfondo1 = new Element("div",{'class':'base', styles:{width: (this.larghezza_monitor/2)+'px',height: this.altezza_monitor+'px',top:'0px',left:'0px',"border-right":"1px solid #CCC"}});
		this.sfondo1.inject($("area_biglietto"),"top");
		
		this.sfondo2 = new Element("div",{'class':'base',styles:{width: (this.larghezza_monitor/2)+'px',height: this.altezza_monitor+'px',top:'0px',left:(this.larghezza_monitor/2)+'px',"border-left":"1px solid #CCC"}});
		this.sfondo2.inject($("area_biglietto"),"top");
	}
	else if(tipo == "retro" && formato == "B")
	{
		this.sfondo1 = new Element("div",{'class':'base',styles:{width: this.larghezza_monitor+'px',height: (this.altezza_monitor/2)+'px',top:'0px',left:'0px'}});
		this.sfondo1.inject($("area_biglietto"));
		
		this.sfondo2 = new Element("div",{'class':'base',styles:{width: this.larghezza_monitor+'px',height: (this.altezza_monitor/2)+'px',top:(this.altezza_monitor/2)+'px',left:'0px',"border-top":"1px solid #CCC"}});
		this.sfondo2.inject($("area_biglietto"));
	}
	else if(tipo == "fronte" && formato == "A")
	{
		this.sfondo1 = null;
		
		this.sfondo2 = new Element("div",{'class':'base',styles:{width: (this.larghezza_monitor)+'px',height: this.altezza_monitor+'px',top:'0px',left:'0px'}});
		this.sfondo2.inject($("area_biglietto"),"top");
	}
	else if(tipo == "fronte" && formato == "B")
	{
		this.sfondo1 = null;
		
		this.sfondo2 = new Element("div",{'class':'base',styles:{width: this.larghezza_monitor+'px',height: (this.altezza_monitor)+'px',top:'0px',left:'0px'}});
		this.sfondo2.inject($("area_biglietto"));
	}
	else
	{
		this.sfondo1 = new Element("div",{'class':'base',styles:{width: this.larghezza_monitor+'px',height: this.altezza_monitor+'px',top:'0px',left:'0px'}});
		this.sfondo1.inject($("area_biglietto"),"top");
		
		this.sfondo2 = null;
	}
	
	this.monitor = new Element("div",{
		styles:
		{
			width: this.larghezza_monitor+'px',
			height: this.altezza_monitor+'px',
			display: 'none',
			border: '1px solid #CCC',
			margin: '0',
			position:'absolute',
			top: '0px',
			left: '0px'
		}});
	
	this.monitor.inject($("area_biglietto"));
	
	
	//memorizza le coordinate per il ridimensionamento e la rotazione delle immagini
	this.monitor.addEvent('mousemove', function(event)
	{ 
		var coords = this.getPosition();
		getCurrentOwner().current_x = event.page.x - coords.x; 
		getCurrentOwner().current_y = event.page.y - coords.y; 
	});
	this.paper = Raphael(this.monitor, this.larghezza_monitor, this.altezza_monitor);
	

	this.current_x = 0;
	this.current_y = 0;
	
	this.cornice1 = "nessuna";
	this.cornice2 = "nessuna";	

	this.oggetti = new Array();
	
	this.Ripristina = function(oggetti_r, proprieta)
	{	
		this.oggetti = new Array();
		
		for(var i=0; i<oggetti_r.length; i++)
			this.oggetti.push(new Layer(new Hash(oggetti_r[i])));
		
		//riordina i layer in base alla posizioe prima di inizializzarli
		this.oggetti.sort(this.sortLayer);
		
		for(var i=0; i<this.oggetti.length; i++)
		{
			//per i clip aggiorna il percorso del file nel caso in cui le cartelle siano state spostate o modificate
			if(this.oggetti[i].get("tipo") == "clip")
				this.oggetti[i].set("nome_file_immagine", 'img/clip_scritte/'+Get_path_clip(this.oggetti[i].get("nome"), database.clips, "/")+this.oggetti[i].get("nome")+'.png');
				
			this.Inizializza_immagine(this.oggetti[i]);
			show_selezione(this.oggetti[i].image_raphael, false);
		}

		this.cornice1 = proprieta.cornice1;
		this.cornice2 = proprieta.cornice2;
		Aggiorna_cornice(this);
	}
	
	this.sortLayer = function(a, b)
	{
		if(a.get("posizione") > b.get("posizione"))
			return 1;
		else
			return -1;
	}
	
	this.getId = function()
	{	
		var id = 0;
		for(var i=0; i<this.oggetti.length; i++)
			if(this.oggetti[i].get("id") > id)
				id = this.oggetti[i].get("id");
		id++;
		return id;
	}

	this.Elimina = function(layer)
	{	
		this.oggetti.remove(layer);
	}
	
	this.getById = function(id)
	{
		for(var i=0; i<this.oggetti.length; i++){
			if(this.oggetti[i].get("id") == id)
				return this.oggetti[i];
		}
			
		return null;
	}

	this.getOggetti = function ()
	{			
		return this.oggetti;
	}
	
	this.getStringOggetti = function()
	{
		//riordina i layer in base alla posizioe prima di inizializzarli
		this.oggetti.sort(this.sortLayer);
		
		var str = '[';
		for(var i=0; i<this.oggetti.length; i++)
			 str+= this.oggetti[i].getArrayString()+',';
		
		if(str != '[')
			str = str.substr(0,str.length-1);
		str += ']';
		return str;
	}

	this.getStringProprieta = function()
	{		
		return '{"tipo":"'+this.tipo+'", "formato":"'+this.formato+'", "larghezza":'+this.larghezza_monitor+', "altezza":'+this.altezza_monitor+', "cornice1":"'+this.cornice1+'", "cornice2":"'+this.cornice2+'"}';	
	}

	this.getNewPosition = function()
	{
		var posizione = 0;
		for(var i=0; i<this.oggetti.length; i++)
			if(Number(this.oggetti[i].get("posizione")) > posizione)
				posizione = Number(this.oggetti[i].get("posizione"));
		return (posizione + 1);
	}
	
	this.Aggiungi = function (layer)
	{	
		if(layer.get("tipo") == "clip")
			layer.set("nome_file_immagine", 'img/clip_scritte/'+Get_path_clip(layer.get("nome"), database.clips, "/")+layer.get("nome")+'.png');
		
		var images = [nome_sito+layer.get("nome_file_immagine")];
		
		Start_request("Caricamento immagine in corso...");

		var myImages = new Asset.images(images, 
		{
			onComplete: function() 
			{
				myImages.each(function(img) 
				{
					img.setStyle('visibility','hidden');
					img.inject(getCurrentOwner().monitor);

					var coeff_riduzione = 0.3;
					var size = img.getSize();
					layer.set('larghezza', size.x*coeff_riduzione);
					layer.set('altezza',size.y*coeff_riduzione);
					layer.set('ox', size.x/2*coeff_riduzione);
					layer.set('oy',size.y/2*coeff_riduzione);
					layer.set('gradi',0);
					
					//memorizza la posizione in prospettiva dell'immagine
					layer.set('posizione', getCurrentOwner().getNewPosition());
		
					getCurrentOwner().Inizializza_immagine(layer);
					getCurrentOwner().oggetti.push(layer);
					
					Salva();
				});
				
				End_request();
			}
		});
	}
	
	this.Inizializza_immagine = function(layer)
	{
		var x = Math.round((layer.get('ox') - (layer.get('larghezza')/2))*100)/100;
		var y = Math.round((layer.get('oy') - (layer.get('altezza')/2))*100)/100;
		
		var image_raphael = this.paper.image(layer.get("nome_file_immagine"), x, y, layer.get('larghezza'), layer.get('altezza'));
		
		//associa il layer all'immagine per eliminarlo se necessario
		image_raphael.layer = layer;
		layer.image_raphael = image_raphael;
		
		//centro dell'immagine e gradi di rotazione iniziali
		image_raphael.ox = layer.get('ox');
		image_raphael.oy = layer.get('oy');
		image_raphael.gradi = layer.get('gradi');
		//per la ridimensione
		image_raphael.width = layer.get('larghezza');
		image_raphael.height = layer.get('altezza');
		
		image_raphael.drag(dragMove, dragStart, dragStop);
		
		var dim_ico = 24;
		
		var rect = this.paper.rect(image_raphael.attr("x"), image_raphael.attr("y"), image_raphael.attr("width"), image_raphael.attr("height"));
		rect.attr({"stroke": "#33FF00","stroke-width": 1});
		
		var dim = this.paper.image('http://www.cartoline.it/sfondi/personalizza/img/ico_dimensione.png',layer.get('larghezza')-(dim_ico/2)+x,layer.get('altezza')-(dim_ico/2)+y,dim_ico,dim_ico);
		dim.attr({"fill": "#33FF00","stroke-width": 1});
		dim.drag(dragMove_dim, dragStart_dim, dragStop_dim);
		
		var rot = this.paper.image('http://www.cartoline.it/sfondi/personalizza/img/ico_rotazione.png',((layer.get('larghezza')-dim_ico)/2)+x,y-(dim_ico/2),dim_ico,dim_ico);
		rot.attr({"fill": "#33FF00","stroke-width": 1});
		rot.drag(dragMove_rot, dragStart_rot, dragStop_rot);
		
		var chiudi = this.paper.image('http://www.cartoline.it/sfondi/personalizza/img/ico_chiudi.png',layer.get('larghezza')-dim_ico+x,y,dim_ico,dim_ico);
		chiudi.attr({"fill": "#FF0000","stroke-width": 1});
		chiudi.click(function (event) {
			getCurrentOwner().Elimina(this.image_set[0].layer);
			this.image_set.remove();
			Salva();
		});
		
		
		var image_set = this.paper.set();
		image_set.push(image_raphael);
		image_set.push(rect);
		image_set.push(dim);
		image_set.push(rot);
		image_set.push(chiudi);
		
		image_raphael.image_set = image_set;
		rect.image_set = image_set;
		dim.image_set = image_set;
		rot.image_set = image_set;
		chiudi.image_set = image_set;
		
		image_set.mouseover(function (event) 
		{
			show_selezione(this, true);
			document.body.style.cursor='pointer';
		});
		image_set.mouseout(function (event) 
		{
			show_selezione(this, false);
			document.body.style.cursor='default';
		});
		
		if(image_raphael.gradi > 0)
			image_set.rotate(image_set[0].gradi, image_set[0].ox, image_set[0].oy);
	}
}

function Layer(dati) {

	this.image_raphael = null;
	var hash = dati;
	
	hash.each(function(value, key){
		if(!isNaN(value))
			hash.set(name, Number(value));
		else
			hash.set(name, value);
	});
	
	this.get = function (name)
	{	
		return hash.get(name);
	}
	
	this.set = function (name, value)
	{	
		hash.set(name,value);
	}
	
	this.getArrayString = function ()
	{	
		//imposta i valori delle coordinate x e y, la larghezza e l'altezza e i gradi di rotazione
		this.set('ox',Math.round(this.image_raphael.ox*100)/100);
		this.set('oy',Math.round(this.image_raphael.oy*100)/100);
		this.set('larghezza',Math.round(this.image_raphael.attr('width')*100)/100);
		this.set('altezza',Math.round(this.image_raphael.attr('height')*100)/100);
		this.set('gradi',Math.round(this.image_raphael.gradi*100)/100);
		
		var string = '{';
		hash.each(function(value, key){string += '"'+key+'":"'+escape(value)+'",';});
		string = string.substr(0,string.length-1)+'}';

		return string;
	}
}

function Salva()
{
	//salva nel cookie le variabili javascript del biglietto, recuperabili tramite "eval"
	var string_cookie = '{fronte:{oggetti:'+owner_fronte.getStringOggetti()+',proprieta:'+owner_fronte.getStringProprieta()+'}';
	if(owner_retro != null)
		string_cookie+= ',retro:{oggetti:'+owner_retro.getStringOggetti()+',proprieta:'+owner_retro.getStringProprieta()+'}}';
	else
		string_cookie+= '}';
	
	Cookie.write('dati_biglietto', string_cookie, {duration: 1, path:'/', domain: '.auguri.it'});
	
	modificato = true;
}

this.Resetta = function()
{
	Cookie.dispose("dati_biglietto", {path:'/', domain: '.auguri.it'});
}
	
//parte grafica
//////////////////////  controlli //////////////////////////////////////////////
	
var riposiziona_controlli = function(obg, dim)
{
	//ingrandisci
	obg.image_set[2].attr({ x: obg.image_set[0].attr("x") + obg.image_set[0].attr("width") - (dim/2) , y: obg.image_set[0].attr("y") + obg.image_set[0].attr("height") - (dim/2)});
	//ruota
	obg.image_set[3].attr({ x: obg.image_set[0].attr("x")+((obg.image_set[0].attr("width")-dim)/2), y: obg.image_set[0].attr("y")-(dim/2) });
	//chiudi
	obg.image_set[4].attr({ x: obg.image_set[0].attr("x")+obg.image_set[0].attr("width") - dim, y: obg.image_set[0].attr("y") });
}

//////////////////////  ridimensionamento //////////////////////////////////////////////

var dragStart_dim = function() {
	
	//prende le coordinate assolute del paper perche dopo la rotazione non vengono aggiornate
	this.x = getCurrentOwner().current_x;
	this.y = getCurrentOwner().current_y;
}


var dragStop_dim = function() {
	Salva();
}

var dragMove_dim = function(dx, dy) {
	//prende le coordinate assolute del paper perche dopo la rotazione non vengono aggiornate
	dx = getCurrentOwner().current_x - this.x;
	dy = getCurrentOwner().current_y - this.y;
	
	var nuovo_raggio = Math.sqrt(Math.pow((this.image_set[0].ox - (this.x+dx)),2) + Math.pow((this.image_set[0].oy - (this.y+dy)),2));
	
	var raggio = Math.sqrt(Math.pow(this.image_set[0].width/2,2) + Math.pow(this.image_set[0].height/2,2));
	//var proporzione = nuovo_raggio / this.image_set[0].raggio;
	var proporzione = nuovo_raggio / raggio;

	//scala l'immagine 
	this.image_set[0].scale(proporzione, proporzione);
	this.image_set[1].scale(proporzione, proporzione);

	//riposiziona i controlli
	riposiziona_controlli(this, 20);
	
	//selezione sempre visibile
	show_selezione(this, true);
}
	
	
/////////////////////////     rotazione	   ////////////////////////////////////

var dragStart_rot = function() {
	//prende le coordinate assolute del paper perche dopo la rotazione non vengono aggiornate
	this.x = getCurrentOwner().current_x;
	this.y = getCurrentOwner().current_y;
}

var dragStop_rot = function() {
	Salva();
}

var dragMove_rot = function(dx, dy) {
	
	//prende le coordinate assolute del paper perche dopo la rotazione non vengono aggiornate
	dx = getCurrentOwner().current_x - this.x;
	dy = getCurrentOwner().current_y - this.y;
	
	this.image_set[0].gradi = Raphael.angle(this.x+dx, this.y+dy, this.image_set[0].ox, this.image_set[0].oy) - 270;
	
	//var gradi = gradi - this.gradi_partenza;
	if(this.image_set[0].gradi < 0)
		this.image_set[0].gradi += 360;
	
	
	this.image_set.rotate(this.image_set[0].gradi, this.image_set[0].ox, this.image_set[0].oy);
	
	//selezione sempre visibile
	show_selezione(this, true);
}


/////////////////////////     spostamento	   ////////////////////////////////////

var dragStart = function()
{
	this.dx = 0;
	this.dy = 0;
	
	//porta l'immagine in primo piano sulle altre
	this.image_set.toFront();
	
	//memorizza il valore del livello (nuovo valore più alto di tutti) all'interno del layer
	this.image_set[0].layer.set("posizione",getCurrentOwner().getNewPosition());
}

var dragStop = function() 
{
	this.image_set[0].ox = this.image_set[0].attr('x') + ((this.image_set[0].attr('width')/2));
	this.image_set[0].oy = this.image_set[0].attr('y') + ((this.image_set[0].attr('height')/2));
	Salva();
}

var dragMove = function(dx, dy) 
{
	this.image_set.translate(dx - this.dx, dy - this.dy);
	this.dx = dx;
	this.dy = dy;
}

function show_selezione(obj,bool)
{
	if(bool)
	{
		obj.image_set[1].show();
		obj.image_set[2].show();
		obj.image_set[3].show();
		obj.image_set[4].show();
	}
	else
	{
		obj.image_set[1].hide();
		obj.image_set[2].hide();
		obj.image_set[3].hide();
		obj.image_set[4].hide();
	}
}

///////////////////////////////////////////////////fine parte grafica//////////////////////////////////////////////////////////

function Start_request(testo)
{	
	var msg_avv = new Element("div",{id:"messaggi_avviso"});
	
	var messaggi_avviso_img = new Element("div",{id:"messaggi_avviso_img"});
	var messaggi_avviso_testo = new Element("div",{id:"messaggi_avviso_testo"});

	messaggi_avviso_img.setStyle("background-image","url(http://biglietti.auguri.it/img/ico-operazione-in-corso.gif)");

	messaggi_avviso_testo.set('html',testo);
	
	messaggi_avviso_img.inject(msg_avv);
	messaggi_avviso_testo.inject(msg_avv);
	
	var left = ($("content").getSize().x - msg_avv.getSize().x) / 2;
	var top = ($("content").getSize().y -  msg_avv.getSize().y) / 2;
	msg_avv.setStyle("left",left+"px");
	msg_avv.setStyle("top",top+"px");
	msg_avv.inject($("content"));
}

function End_request()
{
	$("messaggi_avviso").destroy();
}


function Aggiungi_scritta(owner)
{	
	var testo = escape($("testo").get("value"));
	
	if(testo == "")
	{
		alert("Devi prima inserire il testo!");
		return;
	}

	var colore_testo = "#"+$("colore_selezionato").get("colore");	
	var nome_file_font = $("font_selezionato").get('font')+".ttf";

	var myRequest = new Request({
		url: nome_sito+'php/main.php', 
		method: 'post', 
		onRequest: function(){Start_request("Sto aggiungendo la scritta");},
		onSuccess: function(responseText) 
		{
			if(debugging)
				alert(responseText);
			
			var immagine = responseText.replace(/"/g,'');

			var hash = new Hash();

			hash.set("id",getCurrentOwner().getId());	
			hash.set("tipo","scritta");		
			hash.set("testo",testo);		
			hash.set("colore_testo", colore_testo);				
			hash.set("nome_file_font", nome_file_font);				
			hash.set("nome_file_immagine",immagine);
			
			$("testo").set("value","");
			
			End_request();
			
			owner.Aggiungi(new Layer(hash));

		}
	});
	if(debugging)
		alert("a=crea_scritta&testo="+testo+"&colore_testo="+colore_testo+"&nome_file_font="+nome_file_font);
	myRequest.send("a=crea_scritta&testo="+testo+"&colore_testo="+colore_testo+"&nome_file_font="+nome_file_font);
}

function Aggiungi_clip(str,owner)
{	
	var hash = new Hash();
	hash.set("id",getCurrentOwner().getId());	
	hash.set("tipo","clip");
	
	//registra solo il nome, nome_file_immagine è calcolato nella funzione owner.Aggiungi per eventuali aggiornamenti di directory
	hash.set("nome",str);
	
	owner.Aggiungi(new Layer(hash));
}

function Aggiungi_foto(str,owner)
{	
	var hash = new Hash();
	hash.set("id",getCurrentOwner().getId());	
	hash.set("tipo","upload");
	hash.set("nome_file_immagine", 'img/creati/uploads_utenti/'+str);
	owner.Aggiungi(new Layer(hash));
}

function Salva_biglietto(dati,id,occ)
{	
	var pattern = 	/^([a-zA-Z0-9\.\_\-\à\è\é\ì\ò\ù\' ])+$/;
	var result = pattern.test($("nome_biglietto").get("value"));
	if (!result && $("nome_biglietto").get("value") != '')
	{ 
		alert("Il nome contiene caratteri non validi.\nPuoi inserire solamente: lettere (maiuscole, minuscole, accentate), numeri, spazi e i seguenti: . _ - '");
		return;
	}
	
	var myRequest = new Request({
		url: nome_sito+'php/main.php', 
		method: 'post', 
		onRequest: function(){Start_request("Salvataggio del biglietto in corso...");},
		onSuccess: function(txt) 
		{
			End_request();
			if(debugging)
				alert(txt);
			var risposta = JSON.decode(txt);

			$("salva_biglietto").set("html",risposta.messaggio+'<br><br><a href="http://biglietti.auguri.it/biglietti_utente.php">Vai ai tuoi biglietti</a><br><br>');
		}
	});
	
	if(!isNaN(id))
		dati+='&id_biglietto='+id;
		
	if(debugging)
		alert('a=salva_biglietto_utente&didascalia='+escape($("nome_biglietto").get("value"))+'&'+dati+'&occasione='+occ);
	myRequest.send('a=salva_biglietto_utente&didascalia='+escape($("nome_biglietto").get("value"))+'&'+dati+'&occasione='+occ);
}

function Scarica_biglietto()
{
	if(!Is_logged())
	{
		TB_show("Accesso utente","http://www.auguri.it/box_login_biglietti.php?w=600&h=300&f=Scarica_biglietto");
		return;
	}
	
	Cookie.dispose("dati_biglietto", {path:'/', domain: '.auguri.it'});
		
	var params = {'id_biglietto':id_biglietto,'a':'crea_biglietto','formato_stampa':$("formato_stampa").getSelected().get("value"),'copy_number':$("copy_number").getSelected().get("value"),'occasione':occasione,'oggetti_fronte':owner_fronte.getStringOggetti(),'proprieta_fronte':owner_fronte.getStringProprieta()};
		
	if(owner_retro != null)
	{
		params['oggetti_retro'] = owner_retro.getStringOggetti();
		params['proprieta_retro'] = owner_retro.getStringProprieta();
	}
	
	Post_to_url(nome_sito+'php/main.php', params, 'post')

}

function Post_to_url(path, params, method) {
    method = method || "post"; // Set method to post by default, if not specified.

    // The rest of this code assumes you are not using a library.
    // It can be made less wordy if you use one.
    var form = new Element("form",{"method":method, "action":path}).inject($(document.body));

    for(var key in params) 
        new Element("input",{"type":"hidden","name":key, "value":params[key]}).inject(form);

    form.submit();
}

function Tooltip_aiuto_scarica()
{
	var tooltip = ToolTip.instance($("aiuto_scarica"), {
		autohide: true,
		position: 
		{
			position: 'middle',
			edge: 'left'
		}
	});
	
	tooltip.toolTip.setStyle("color","#000");
	tooltip.toolTip.setStyle("width","220px");
	
	tooltip.set('<div style="clear:both;"></div><br>Clicca con il tasto destro del mouse e seleziona la voce "Salva..."<br><br>');
	tooltip.show();
}

function Tooltip_aiuto_salva()
{
	var tooltip = ToolTip.instance($("aiuto_salva"), {
		autohide: true,
		position: 
		{
			position: 'middle',
			edge: 'left'
		}
	});
	
	tooltip.toolTip.setStyle("color","#000");
	tooltip.toolTip.setStyle("width","220px");
	
	tooltip.set('<div style="clear:both;"></div><br>Conserva su Auguri.it i biglietti che hai creato per ritrovarli, modificarli e ristamparli<br><br>');
	tooltip.show();
}

function Set_copy_number()
{
	var tabella_stampa = {
	F1:{A:[1,2],B:[1,2],C:[1,2,4],D:[1,2,4],E:[1,2,4],F:[1,2,4]},
	F2:{A:[1,2],B:[1,2],C:[1,2,4],D:[1,2,4],E:[1,2,4],F:[1,2,4]},
	F3:{A:[1],B:[1],C:[1,2],D:[1,2],E:[1,2],F:[1,2]},
	F4:{A:[1],B:[1],C:[1,2],D:[1,2],E:[1,2],F:[1,2]}};
	
	var num_max_copie = tabella_stampa[$("formato_stampa").getSelected().get("value")][formato].length;
	
	//$("span_copy_number").setStyle("visibility","hidden");
	$("copy_number").empty();
	
	for(var i=0; i<num_max_copie; i++)
		new Element("option",{text:tabella_stampa[$("formato_stampa").getSelected().get("value")][formato][i], value:tabella_stampa[$("formato_stampa").getSelected().get("value")][formato][i]}).inject($("copy_number"));
			
	if(num_max_copie == 1)
		$("span_copy_number").setStyle("display","none");
	else
		$("span_copy_number").setStyle("display","block");
		
	
}
