var NUVOLETTA_PARAMS={
	spike:{H:71,W:98}
};

var nuvoletta_tracker=new Array();
var nuvoletta_inputs;
var MENU_offsetHeight=0;



function nuvoletta_void(){}

function nuvoletta_draw(content,dimension,position,spike,close_callback,close_callback_args){
	/*
	 * incremento le dimensioni per evitare che a causa dell'attributo 
	 * overflow:auto del content appaiano le scrollbar
	 */
	 
	try{
		MENU;
		MENU_offsetHeight=MENU.offsetHeight;
	}catch(e){
		MENU=false;
	}
		 
	var dimension=new cloneObject(dimension);
	var position=new cloneObject(position);
	
	dimension.H+=10;dimension.W+=10;
	
	if(arguments.length<4) spike=true;
	close_callback=close_callback || false;
	close_callback_args=close_callback_args || false;
	
	var close_listener=false;
	
	var	spike_position="L";
	var spike_img="/img/tap_left.png";
	
	var body=document.getElementsByTagName("body")[0];

	var main_div=document.createElement("div");
	var img,div;
	var spike_width=0,spike_height=0;
	var h_max,w_max;
	
	if(position.align){
		var i_align=0;
		for(i_align=0;i_align<position.align.length;i_align++){
			switch(position.align[i_align]){
				case "T"://da fare
				break;
				
				case "B":
				position.Y+=dimension.H;
				break;
				
				case "L"://da fare
				break;
				
				case "R"://da fare
				//position.X+=dimension.W;
				break;
			}
		}
	}
	
	h_max=NUVOLETTA_PARAMS.spike.H+dimension.H;
	w_max=dimension.W-25;

	if(MENU && spike){
		h_max+=MENU_offsetHeight;
		spike=(position.Y>h_max);
	}

	if((position.Y-dimension.H)<=MENU_offsetHeight) {
		position.Y+=dimension.H;
		if((position.Y-dimension.H)<=MENU_offsetHeight)	alert("ERROR oversizing!");
	}
	
	if(position.X>(body.offsetWidth-w_max))	{
		position.X-=w_max-25;
		spike_position="R";
		spike_img="/img/tap_right.png";
		//if(position.X>(body.offsetWidth-w_max)) oversize=;
	}
	
	if(spike) {
		spike_height=NUVOLETTA_PARAMS.spike.H;
		spike_width=NUVOLETTA_PARAMS.spike.W;
	}
	
	main_div.className="nuvoletta_main_box";
	main_div.style.width=dimension.W+"px";
	main_div.style.height=dimension.H+"px";
	main_div.style.left=(position.X-(25+2)-2)+"px";
	main_div.style.top=(position.Y-(dimension.H+spike_height)-2)+"px";
	
	img=document.createElement("img");
	img.src="/img/nw.png";
	main_div.appendChild(img);
	
	div=document.createElement("div");
	div.className="autocompletecontainer";
	main_div.appendChild(div);
	
	div=document.createElement("div");
	div.className="border_top";
	div.style.width=dimension.W-(25*2);
	main_div.appendChild(div);
	
	img=document.createElement("img");
	img.src="/img/ne.png";
	main_div.appendChild(img);
	
	div=document.createElement("div");
	div.className="sides";
	div.style.height=dimension.H-(25*2);
	div.style.width=dimension.W-2;
	main_div.appendChild(div);
	
	img=document.createElement("img");
	img.src="/img/sw.png";
	main_div.appendChild(img);
	
	img=document.createElement("img");
	img.src=spike_img;
	
	div=document.createElement("div");
	div.className="border_bottom";
	div.style.width=dimension.W-(25*2)-spike_width;
	
	switch(spike_position){
		case "L":
		if(spike) main_div.appendChild(img);
		main_div.appendChild(div);
		break;
		
		case "R":
		main_div.appendChild(div);
		if(spike) main_div.appendChild(img);
		break;
	}
	
	img=document.createElement("img");
	img.src="/img/se.png";
	main_div.appendChild(img);
	
	div=document.createElement("div");
	div.className="content";
	div.style.height=dimension.H-20;
	div.style.width=dimension.W-20;
	if(close_callback){
		var tmp="",i;
		img=document.createElement("img");
		img.src="/img/close.gif";
		for(i=5;i<arguments.length;i++) {
			if(i>5) tmp+=",";
			tmp+=arguments[i];
		}
		setEvent(img,"click",close_callback,eval(tmp));
		div.appendChild(img);
	}
	content=div.appendChild(content);
	
	main_div.appendChild(div);	
	main_div=body.appendChild(main_div);
	window.nuvoletta_chk_click=false;
	if(close_callback) {
		tmp="main_div,close_callback,"+tmp;
		tmp="setEvent(window,\"click\",nuvoletta_check_click,"+tmp+");"
		window.nuvoletta_chk_click=eval(tmp);
	}
	
	main_div.changed=false;
	
	main_div.scrollIntoView(false);
	return main_div;
}

function raw_nuvoletta_draw(content,dimension,position,close_callback,close_callback_args){
	/*
	 * incremento le dimensioni per evitare che a causa dell'attributo 
	 * overflow:auto del content appaiano le scrollbar
	 */ 
	var img,a;
	var div=document.createElement("div");
	div.className="nuvoletta_raw_box";
	var dimension=new cloneObject(dimension);
	var position=new cloneObject(position);
	
	dimension.H+=10;dimension.W+=10;
	
	close_callback=close_callback || false;
	close_callback_args=close_callback_args || false;
	
	var close_listener=false;
	
	var body=document.getElementsByTagName("body")[0];

	div.style.left=position.X+"px";
	div.style.top=(position.Y-dimension.H-20)+"px";
	div.style.width=dimension.W+"px";
	div.style.height=dimension.H+"px";
	
	if(close_callback){
		var tmp="",i;
		a=document.createElement("a");
		a.href="javascript:void(0);";
		a.className="nuvoletta_raw_box_close";
		//a.innerHTML="<img src=\"/img/close.gif\"/>";
		
		img=document.createElement("img");
		img.src="/img/close.gif";
		
		a=div.appendChild(a);

		a.appendChild(img);
		
		for(i=4;i<arguments.length;i++) {
			if(i>4) tmp+=",";
			tmp+=arguments[i];
		}
		setEvent(a,"click",close_callback,eval(tmp));
	}

	window.nuvoletta_chk_click=false;
	
	if(close_callback) {
		tmp="div,close_callback,"+tmp;
		tmp="setEvent(window,\"click\",nuvoletta_check_click,"+tmp+");"
		window.nuvoletta_chk_click=eval(tmp);
	}
	div.appendChild(content);
	div=body.appendChild(div);


	return div;
}

function nuvoletta_setOnChangeEvents(obj_nuvoletta){
	var i;
	var inputs=mergeArray(	obj_nuvoletta.getElementsByTagName("input"),
							obj_nuvoletta.getElementsByTagName("select"),
							obj_nuvoletta.getElementsByTagName("textarea"));
	for(i=0;i<inputs.length;i++) inputs[i].nuvoletta_onchange=setEvent(inputs[i],"change",nuvoletta_setChanged,obj_nuvoletta);
}

function nuvoletta_setChanged(obj_nuvoletta){obj_nuvoletta.changed=true;}


function nuvoletta_check_click(main_div,close_callback){
	var obj=arguments[arguments.length-2];
	var evt=arguments[arguments.length-1];
	var tmp="",i;
	for(i=2;i<arguments.length-2;i++) {
		if(i>2) tmp+=",";
		tmp+=arguments[i];
	}
	tmp+=",obj,evt";

	tmp="close_callback("+tmp+");";
//	alert(main_div.className);
//	alert(obj);
	var calendar=document.getElementById("calendar");
	var customer_list=document.getElementById("customer_list");
	main_div.clickable_elements=new Array();
	if(calendar) main_div.clickable_elements.push(calendar);
	if(customer_list) main_div.clickable_elements.push(customer_list);	
	
	if(!isChildOf(obj,main_div)) close_callback(eval(tmp));
	main_div.clickable_elements=null;
}


function msg(testo,numero){
	alert("mess="+testo+",numero="+numero);
}


function nuvoletta_clear(obj_nuvoletta,checkChanged){
	if(!obj_nuvoletta) return true;
	var checkChanged=checkChanged || false;
	nuvoletta_tracker.push("clear");
	if(checkChanged && obj_nuvoletta.changed) if(!confirm(MSG_NUVOLETTA_CHANGED)) return false;
	if(window.nuvoletta_chk_click) unsetEvent(window,"click",window.nuvoletta_chk_click);
	window.nuvoletta_chk_click=false;
	obj_nuvoletta.parentNode.removeChild(obj_nuvoletta);
	//obj_nuvoletta=false; � inutile perch� � un riferimento a un'oggetto..cio� non viene alterata la variabile che gli viene passata
	return true;
}
