// JavaScript Document

/* Credits:
Max Jacob, {xzoert} "myGuru();"
Arno Peck, Lorenzo Becchi 
his friends
*/

/* upload message */

function nowUploading() {

document.getElementById('popconsolle').style.display = 'none';
document.getElementById('poploading').style.display = 'block';
//alert('fatto');
document.imageUpload.submit();
}

/* apertura popup */

function WOFocusWin( name ) {
		
	eval( "if( this."+name+") this."+name+".moveTo(50,50); this."+name+".focus();" );
		
}

function WOOpenWin( name, url, ctrl ) {
	eval( "this."+name+"=window.open('"+url+"','"+name+"','"+ctrl+"');" );
	window.setTimeout( "top.winOpener.focusWin('"+name+"');", 300 );
}

function WinOpener() {
		this.openWin=WOOpenWin;
		this.focusWin=WOFocusWin;
}
	
top.winOpener=new WinOpener();


function go2url(url) {
	window.location = url;
}



/* dinamismo tab lingue */


var __vistab;
var __dbg=1;

function handleTabClick( ev ) {
   try {
	   var tab = getTab( ev );
	   var lang = tab.id.substring( 9, tab.id.length );              // hides the visible tab
       hideTab( __vistab );
       // shows the clicked
       showTab( lang );
       // updates the __vistab
       __vistab = lang;
   }
   catch( e ) {
       alert( "Errore: "+e );          
   }
}

function getTab( e ) {
	if( !e ) e=window.event;
	var el = e.target;
	if( !el ) el = e.srcElement;
	while( el ) {
		if( el.id ) {
			if( el.id.indexOf( 'tab_lang_' ) == 0 ) {
				return( el );
				
			}
		}
		el=el.parentNode;
	}
	return null;
}


function initLangTabs() {
   try {
       var avlangs = document.getElementById( "languages" ).value.split(",");
       for( var i = 0; i < avlangs.length; i++ ) {
           var tabname="tab_lang_"+avlangs[i];
           var tab = document.getElementById( tabname );
           if( tab !=null ) {
               // set the event handler
               tab.onclick = handleTabClick;
               
               // hide the divs after the first
               if( i>0 ) hideTab( avlangs[i] );
               else {
                   __vistab = avlangs[i];
                   showTab( avlangs[i] );
               }
           }
       }
   }
   catch( e ) {
       alert( "Errore: "+e );      
   }
}

function hideTab( lang ) {
   try {
       document.getElementById("lang_"+lang).style.display = "none";
       document.getElementById("tab_lang_"+lang).style.background="#eee none";
       refreshTab( lang );
   }
   catch( e ) {
       alert( "Errore: "+e );      }
}

function showTab( lang ) {
   try {
       document.getElementById("lang_"+lang).style.display = "block";
       document.getElementById("tab_lang_"+lang).style.background="#c00 none";
       refreshTab( lang );
   }
   catch( e ) {
       alert( "Errore: "+e );      }
}

function refreshTab( lang ) {
   try {
       if (document.getElementById("title_"+lang).value == '') {
           document.getElementById("tab_lang_"+lang).style.color = "#bbb";
       }
       else {
           document.getElementById("tab_lang_"+lang).style.color = "#000";
       }
   }
   catch( e ) {
       alert( "Errore: "+e );      }
}




/* MAnagement of linked obkjects in a list */
	
var lodHTML = "<span class=\"delete\"> [ <a href=\"#\" onclick=\"lo_removeLinkedObject( '$ID$' );\"><span>x</span></a> ] </span><img alt=\"icona\" src=\"../services/iconProvider.jsp?id=$ID$\"/> <span>$LABEL$</span>";

function lo_addLinkedObject( id, label ) {

	try {

		var csv = document.getElementById( "linkedObjects" ).value;
		var lobs = csv.split( "," );
		// checks if the id is present
		var i;
		for( i=0; i!=lobs.length; i++ ) {
			if( lobs[i] == id ) return;
		}
		
		// ok, gotta add it: so first write it down
		if( csv.length == 0 ) document.getElementById( "linkedObjects" ).value = id;
		else document.getElementById( "linkedObjects" ).value += ","+id;
		
		var lod = document.getElementById( "loList" );
		
		var li=document.createElement( "li" );
		li.setAttribute( "id", "lod_"+id );
		var html = lodHTML.replace( /\$ID\$/g, id ).replace( /\$LABEL\$/g, label );
		li.innerHTML = html;
		lod.appendChild( li );
		
	}
	catch( e ) {
		alert( "Errore javascript: "+ e.msg );
	}
		

}

function lo_removeLinkedObject( id ) {
		var csv = document.getElementById( "linkedObjects" ).value;
		var lobs = csv.split( "," );
		// recreate the string without it down  	
		cvs = "";
		var i;
		for( i =0; i<lobs.length; i++ ) {
			if( lobs[i]!=id ) {
				if( cvs != "" ) cvs += ","+lobs[i];
				else cvs = lobs[i];
			}
		}
		document.getElementById( "linkedObjects" ).value = cvs;
		
		// remove the element
		var lod = document.getElementById( "loList" );
		var div = document.getElementById( "lod_"+id );
		lod.removeChild( div );					

					
}


function lo_init() {

	try {

		var csv = document.getElementById( "linkedObjects" ).value;
		var lobs = csv.split( "," );
		csv = document.getElementById( "loLabels" ).value;
		var lol = csv.split( "," );
		
		var lod = document.getElementById( "loList" );
		
		var i;
		for( i=0; i<lobs.length; i++ ) {
			var li=document.createElement( "li" );
			li.setAttribute( "id", "lod_"+lobs[i] );
			var html = lodHTML.replace( /\$ID\$/g, lobs[i] ).replace( /\$LABEL\$/g, lol[i] );
			li.innerHTML = html;
			lod.appendChild( li );
		}

	}
	catch( e ) {
		alert( "Errore javascript: "+ e.msg );
		throw e;
	}


}

 



/* funzione preview picked image */


function DoPreview(inputf,placeholder) {
	
	path = document.getElementById(inputf).value;
	document.getElementById(placeholder).src = 'file://' + path;
}





/* ordinatore elementi */ 


var started=false;
var titoli=new Array();

function Titolo(id,pos) {
	this.id=id;
	this.pos=pos;
}

function addPos(id,p) {
	titoli[titoli.length]=new Titolo(id,p);
}





function posChanged( id ) {
	if( !started ) {
		return;
	}
	var tit=findTitById(id);
	var prev=tit.pos;
	var sel=document.getElementById( id );
	tit.pos=sel.value;
	if( prev==sel.value ) return;
	if( prev<tit.pos ) {
		for( var i=0; i<titoli.length; i++ ) {
			if( titoli[i]!=tit && titoli[i].pos>prev && titoli[i].pos<=tit.pos ) {
				titoli[i].pos--;
				document.getElementById(titoli[i].id).options.item(titoli[i].pos-1).selected=true;
			}
		}	 
	}
	else {
		for( var i=0; i<titoli.length; i++ ) {
			if( titoli[i]!=tit && titoli[i].pos<prev && titoli[i].pos>=tit.pos ) {
				titoli[i].pos++;
				document.getElementById(titoli[i].id).options.item(titoli[i].pos-1).selected=true;
			}
		}	
	}
}


function findTitById( id ) {
	for( var i=0; i<titoli.length; i++ ) {
		if( titoli[i].id==id ) return( titoli[i] );
	}
	return( null );
}


function repos() {
	for( var i=0; i<titoli.length; i++ ) {
		document.getElementById( titoli[i].id ).options.item(i).selected=true;
		titoli[i].pos=i+1;
	}
}


function setAllPosToOne() {
	for( var i=0; i<titoli.length; i++ ) {
		document.getElementById( titoli[i].id ).options.item(0).selected=true;
		titoli[i].pos=1;
	}	
}

// Tabbatore

		var TBX_onstyle="background-color:#a0a;";
		var TBX_offstyle="background-color:#0f0;";
	
		function TBX_init() {
			// browse the document and find all TBX_* tags
			TBX_browse( document.documentElement );
		}
		
		TBX_all=null;
		
		
		function TBX_handler( btn, id, tab ) {
			TBX_all[id]=this;
			this.id = id;
			this.tab=tab;
			this.btn=btn;
			this.handleClick=TBX_handleClick;
			btn.onclick=this.handleClick;
			this.show=TBX_show;
			this.hide=TBX_hide;
		}

		TBX_current=null;
		
		function TBX_show() {
			this.tab.style.display="block";
			if( TBX_current ) TBX_current.hide();
			TBX_current=this;
			var cn = this.btn.className;
			if( !cn ) cn = "";
			else cn=cn.replace( "TBX_inactive" );
			cn+=" TBX_active";
			cn=cn.replace( "  ", " " );
			this.btn.className=cn;
		}
		
		function TBX_hide() {
			this.tab.style.display="none";
			var cn = this.btn.className;
			if( !cn ) cn = "";
			else cn=cn.replace( "TBX_active" );
			cn+=" TBX_inactive";
			cn=cn.replace( "  ", " " );
			this.btn.className=cn;
		}

		function TBX_handleClick() {
			var th=TBX_all[this.id];
			if( th == TBX_current ) return;
			th.show();
		}
		
		function TBX_browse( n ) {
		
			var id = n.id;
			var idx = -1;
			if( id!=null && id.indexOf) idx=id.indexOf( "TBX_" );
			if( id != null && idx==0 && id.substring(5,id.length).indexOf( "_" )<0 ) {
				var tab = document.getElementById( id+"_tab" );
				if( tab ) {
					if( TBX_all == null ) {
						// initialize the TBX_all and keep this  tab visible
						TBX_all=new Array();
						var th = new TBX_handler( n, id, tab );
						th.show();
					}
					else {
						var th = new TBX_handler( n, id, tab );
						th.hide();						
					}
				}
			}
			for( var i = 0; i<n.childNodes.length; i++ ) {
				if( n.nodeType == 1 ) 
					TBX_browse( n.childNodes[i] );
			}
		
		}


	function textCounter( field, countfield, maxlimit ) {
	  if ( field.value.length > maxlimit )
	  {
		field.value = field.value.substring( 0, maxlimit );
		alert( 'In questo campo sono permessi soltanto '+ maxlimit +' caratteri.' );
		return false;
	  }
	  else
	  {
		countfield.value = maxlimit - field.value.length;
	  }
}
	
	

	

	

// Form wizard 1.0 * Arno Peck 2004
agree=0;
steps=6;
current=0;
agree=0;

function agreement () {
	agree=1;
	document.getElementById('formnav').style.visibility='visible';
	nextstep();
}

function hidesteps () {
	for (i=0; i<=steps; i++) {
		document.getElementById('fstep'+i).style.display='none';
	}
}

function checkbuttons () {
	if (agree==0) 
			{
			document.getElementById('btnprev').style.visibility='hidden';
			document.getElementById('btnnext').style.visibility='hidden';
			document.getElementById('btnsubmit').style.visibility='hidden';
			}
	else {
		if (current<=1) {
			document.getElementById('btnprev').style.visibility='hidden'; //disabled='disabled';
			document.getElementById('btnnext').style.visibility='visible';
		} 
		else {
			document.getElementById('btnprev').style.visibility='visible';
			document.getElementById('btnnext').style.visibility='visible';
		}
		if (current>=steps) {
			document.getElementById('btnnext').style.visibility='hidden'; //disabled='disabled';
			document.getElementById('btnsubmit').style.visibility='visible';
			current=steps;
		}
		else {
		document.getElementById('btnnext').style.visibility='visible'; //disabled=false;
		document.getElementById('btnsubmit').style.visibility='hidden';
		}
	}
}	

function nextstep () {
		document.getElementById('fstep'+current).style.display='none';
		document.getElementById('fstep'+(current+1)).style.display='block';
		current=(current+1);
		checkbuttons();
}

function prevstep () {
	document.getElementById('fstep'+current).style.display='none';
	document.getElementById('fstep'+(current-1)).style.display='block';
	current=(current-1);
	checkbuttons();
}

function initform () {
	if ( document.getElementById('btnsubmit') == null) {
		return;
	}
		hidesteps();
		document.getElementById('fstep'+'0').style.display='block';
		checkbuttons();

}

function begin () {
	var license=document.getElementById('flicense').value;
	if (confirm(license)) {
		agreement();
	}
}


