//--------------------------------------------------------------------
//Funzioni per l'apertura e la gestione di una nuova finestra.
//--------------------------------------------------------------------

//--------------------------------------------------------------------
//Nei moduli JSP chiamanti che utilizzano la funzione openwnd o la
//funzione impostaVariabiliNuovaFinestra va incluso il modulo WDZ064.js.
//--------------------------------------------------------------------

// variabili  per gestione showLikeModal





var wnds = new Array();
var wndsobjects=new Array();
var aus = new Array();
var num_fields=9;

//---------------------------
var url="";
var wndwidth="";
var wndheight="";
var nom_link="";
var desc="";
var n_wnds="";
var nome_app="";
var appId="";
var toolbar="";
var left="";
var top="";
//---------------------------

//---------------------------
var win1=null;
//---------------------------

function windowclosed(){
	if (win1 != null){
		if(win1.closed){ return true; }
		else { return false; }
		} else { return true; }
}

function assignName()
{
	
	var myname=window.name
	var num;
	var ret;
//	alert("wname ="+myname)
	
	if (myname.length == 2)
	{
		num=parseInt(myname);
		if (num >= 1) num=num+1;
		else num=1;
		
		if (num <= 9)  ret="0"+num.toString();			
		else ret=num.toString();
	}
	else ret="01"
	
	return (ret);
	
}



function parseURL(urlstr)
{
	
	
	var ch="";
	var init_parse=false;
	var parsing_name=false;
	var parsing_value=false;
	var param_name="";
	var param_value="";
	var param_url="";
	var params=new Array("",new Array(),new Array());
	
	
	var i=0;
	var num_params=0;
	var len_url=urlstr.length;
	while (i <= len_url)
	{
		ch=urlstr.charAt(i++);
		if (init_parse)
		{
		   if (parsing_name)  // parsing name
		   {
		   	if (ch != "&")
			{
				if (ch != "=")
		   		{ 
		   	    		param_name=param_name+ ch;
		   		}
		   		else
		   		{
		   	    		parsing_value=true;
		   	    		parsing_name=false;   
		   		}
			}
		   }
		   else  // parsing value
		   {
		   	if (ch != "&")
		   	{ 
		   	    param_value=param_value+ ch;
		   	}
		   	else
		   	{
		   	    
			    parsing_value=false;
		   	    parsing_name=true;
		   	    params[1][num_params]=param_name;
		   	    params[2][num_params++]=param_value;
		   	    param_name=""
		   	    param_value=""
		   		
		   	}						   		   	
		   }		
		}
		else
		{
			if (ch == "?")
			{
			 	parsing_value=false;
			 	parsing_name=true;
			 	init_parse=true;
			 	params[0]=param_url;
			 	
			}
			else
			{
				param_url=param_url+ch;
				
			}
		}
	}
	params[1][num_params]=param_name;
	params[2][num_params++]=param_value;

	return (params);
	
}





function showlikemodal(url1)
{
x=(screen.availWidth)/2;
y=(screen.availHeight)/2; 
var parametri = "hotkeys=no,location=no,menubar=no,personalbar=no,toolbar=no,width="+x+",height="+y+",resizable=yes,top=0,left=0,scrollbars=yes,status=no";
	if (windowclosed()){
		var wndname=assignName();
		var mat=parseURL(url1);
		var aus="";

		if (mat.length > 0)
		{
			win1 = window.open('',wndname,parametri);
			win1.document.writeln("<BODY>");
			win1.document.writeln("<FORM NAME='ausform'>");
			
			for (i = 0; i < mat[1].length; i++)
			{
				aus="<INPUT type='hidden' name='"+mat[1][i]+"' value='"+mat[2][i]+"'>";
//				alert(aus);
				win1.document.writeln(aus);	
			} 
			win1.document.writeln("</FORM>");
			win1.document.writeln("</BODY>");
			
			win1.document.forms("ausform").action=mat[0];
			win1.document.forms("ausform").submit();
		}
	}else{
		alert("devi chiudere prima l'applicazione");
		win1.focus();
	}
}

function showlikemodalsvincolo(url1)
{
x=(screen.availWidth);
y=(screen.availHeight); 
var parametri = "hotkeys=no,location=no,menubar=no,personalbar=no,toolbar=no,width="+x+",height="+y+",resizable=yes,top=0,left=0,scrollbars=yes,status=no";
	if (windowclosed()){
		var wndname=assignName();
		var mat=parseURL(url1);
		var aus="";

		if (mat.length > 0)
		{
			win1 = window.open('',wndname,parametri);
			win1.document.writeln("<BODY>");
			win1.document.writeln("<FORM NAME='ausform'>");
			
			for (i = 0; i < mat[1].length; i++)
			{
				aus="<INPUT type='hidden' name='"+mat[1][i]+"' value='"+mat[2][i]+"'>";
//				alert(aus);
				win1.document.writeln(aus);	
			} 
			win1.document.writeln("</FORM>");
			win1.document.writeln("</BODY>");
			
			win1.document.forms("ausform").action=mat[0];
			win1.document.forms("ausform").submit();
		}
	}else{
		alert("devi chiudere prima l'applicazione");
		win1.focus();
	}
}

 
function showlikemodal1(url){
x=(screen.availWidth)/2;
y=(screen.availHeight)/2; 
var parametri = "hotkeys=no,location=no,menubar=no,personalbar=no,toolbar=yes,width="+x+",height="+y+",resizable=yes,top=0,left=0,scrollbars=yes,status=no";
	if (windowclosed()){
		 

		win1 = window.open(url,assignName(),parametri);
		
	}else{
		alert("Chiudere prima l'applicazione.");
		win1.focus();
	}
}





function showlikemodal3(svlt,uc,sc,st,etichetta){
x=(screen.availWidth)/2;
y=(screen.availHeight)/2;
var parametri = "hotkeys=no,location=no,menubar=no,personalbar=no,toolbar=no,width="+x+",height="+y+",resizable=yes,top=0,left=0,scrollbars=yes,status=no";
var frm = document.forms("ausform");

if (windowclosed()){
		 
	var nome_wnd=assignName();
	
	win1 = window.open('',nome_wnd,parametri);		
		
   frm.method="POST";
   frm.action= rootPath + svlt;
   frm.elements("UC").value=uc;
   frm.elements("SC").value=sc;
   frm.elements("ST").value=st;
   frm.elements("Label").value=etichetta;
   frm.target=nome_wnd;
   //frm.target=titolo;
   frm.submit();		
		
	}else{
		alert("devi chiudere prima l'applicazione");
		win1.focus();
	}
}





          		
function findwnd(idwnd)
{
	for(var j=0; j < aus.length; j++)
	{
		var id=aus[j];
		if (id == idwnd) return (j);
	}
	return -1;		
}



function openwnd (appid,url,x,y,flag_toolbar,l,t)
{
	var links = TAB_WDZ064.split('|');
	x=screen.availWidth-13;
    	y=screen.availHeight-48; 
    	if (l==null) l=0;
    	if (t==null) t=0;
	var parametri = "hotkeys=no,location=no,menubar=no,personalbar=no,"
		+"resizable=yes,top="+t+",left="+l+",scrollbars=yes,"
		+"status=yes,width="+x+",height="+y;
	var nome_app=links[(appid-1)*num_fields+2];
	var n_wnds=links[(appid-1)*num_fields+7];
	var id=links[(appid-1)*num_fields+1];
	
	if (flag_toolbar=="yes") parametri=parametri+",toolbar=yes";
	else parametri=parametri+",toolbar=no";
      
	var prev=wnds[appid];
	
	if (prev != null)
	{
		prev=prev+1;
		if (prev > n_wnds) prev=1;
	}
	else prev=1;

	wnds[appid]=prev;

	var wndid=findwnd(id+"_"+prev);

	if ((wndid >= 0) && (wndsobjects[wndid] != null)
	&& (!wndsobjects[wndid].closed)){
		wndsobjects[wndid].focus();
	}else{
		var obj=window.open (url,id+"_"+prev,parametri);
		obj.focus();
		if (wndid > 0) wndsobjects[wndid]=obj;
		else
		{
			 wndsobjects[wndsobjects.length]=obj;
			 aus[aus.length]=id+"_"+prev;
		}
	} 
}



//-----------------------------------------------------------
//Questa funzione va chiamata nel BODY del JSP chiamante,
//PRIMA di setMessages, in questo modo:
//-----------------------------------------------------------
//<script>
//...
//impostaVariabiliNuovaFinestra(ind_app);
//setMessages(ind_app);
//...
//</script>
//-----------------------------------------------------------
function impostaVariabiliNuovaFinestra(id_app){
	var links = TAB_WDZ064.split('|');
	var numlinks=links.length/num_fields;
	for(var i=0; i < numlinks; i++){
		if(id_app==links[i*num_fields+0]){
			url      = links[i*num_fields+6];
			wndwidth = links[i*num_fields+4];
			wndheight= links[i*num_fields+5];
			nom_link = links[i*num_fields+2];
			desc     = links[i*num_fields+3];
			n_wnds   = links[i*num_fields+7];
			nome_app = links[i*num_fields+2];
			appId    = links[i*num_fields+0];
			toolbar  = links[i*num_fields+8];
			left     = links[i*num_fields+9];
			top      = links[i*num_fields+10]; 
		}
	}
}



function closeWnds()
{	
	
	if (wndsobjects.length > 0)
	{
			for(var j=0; j < wndsobjects.length; j++)
			{	
				var obj=wndsobjects[j];
				if (!obj.closed) obj.close();
			}
			
	}

	if (win1 != null) win1.close();
	
}



function closeAIDA()
{
	window.close();
	
}








//Alla chiusura della finestra, chiude anche le finestre che
//sono state aperte dalle funzioni showlikemodal*.
window.onunload=new Function("if (!windowclosed()) win1.close()");
