// ****** HIDE OR SHOW A LAYER

function showhide(id){
if (document.getElementById)
	{
	obj = document.getElementById(id);
	if (obj.style.display == "none")
		{
		obj.style.display = "";
		} 
	else 
		{
		obj.style.display = "none";
		}
	}
};


function hide(id){
if (document.getElementById)
	{
	obj = document.getElementById(id);
	obj.style.display = "none";
	}
};

function show(id){
if (document.getElementById)
	{
	obj = document.getElementById(id);
	obj.style.display = "";
	}
};


function parhide(id){
if (parent.document.getElementById)
	{
	obj = parent.document.getElementById(id);
	obj.style.display = "none";
	}
};

function parshow(id){
if (parent.document.getElementById)
	{
	obj = parent.document.getElementById(id);
	obj.style.display = "";
	}
};



// ****** POPUP FUNCTION
function apri(cosa,dove,larg,alt)
{
var new_windows='';
new_windows = 'width='+larg+',height='+alt+',scrollbars=yes';
window.open(cosa, dove, new_windows );
        };
        
// ****** CONFIRM FUNCTION
function confirm_dialog(message)
{
	return confirm(message)
};    

// ****** CHANGE OPTIONS OF A PAGE USING PREFIX AND OPTION SELECTED
function prefix_navigation(prefix,selection){
var URL = selection.options[selection.selectedIndex].value;
window.location.href = prefix+URL;
};  

// ****** COPY VALUE FUNCTION
function copy_value(frmname,fielda,fieldb)
{  
	formobj=document.forms[frmname];
	if(!formobj)	{alert("BUG: Il form "+frmname+" non è definito");return;};
	if(!formobj[fielda])	{alert("BUG: Il campo "+fielda+" non è definito");return;};
	if(!formobj[fieldb])	{alert("BUG: Il campo "+fieldb+" non è definito");return;};
/*	if (formobj[fielda].value!='') {*/
	if (formobj[fieldb].value!='') {if (confirm('Sostituire valori ?')){formobj[fieldb].value=formobj[fielda].value;}}
	else {formobj[fieldb].value=formobj[fielda].value;};
//}
}; 



// **** METTI ALLEGATI
function allega(frmname,divname,fielda,nrdoc,descstring)
{
	
		formobj=parent.document.forms[frmname];
		if(!formobj)	{alert("BUG: Il form "+frmname+" non è definito");return;};
		destfield=formobj[fielda];
		if(!destfield)	{alert("BUG: Il campo "+fielda+" non è definito");return;};
		destdiv=parent.document.getElementById(divname);
		if(!destdiv)	{alert("BUG: Il riquadro "+divname+" non è definito");return;};

		if (destfield.value.indexOf(','+nrdoc+',')==-1) 
			{
			if (formobj['allegaticount'].value==0) {destdiv.innerHTML=""};
			formobj['allegaticount'].value++;
			obj = parent.document.getElementById('alle'+nrdoc);
			if (!obj) 
				{destdiv.innerHTML=destdiv.innerHTML+descstring}
			else {parshow('alle'+nrdoc)}
			destfield.value=destfield.value+nrdoc+',';
			//document.getElementById("daalle"+nrdoc).innerHTML = '<table border="1" BORDERCOLOR="red"><TR><TD>'+document.getElementById("daalle"+nrdoc).innerHTML+'</TD></TR></table>';
			}
};


// **** TOGLI ALLEGATI.... 
function deallega(frmname,divname,fielda,nrdoc)
{
	formobj=self.document.forms[frmname];
	if(!formobj)	{alert("BUG: Il form "+frmname+" non è definito");return;};
		listfield=formobj[fielda];
		if(!listfield)	{alert("BUG: Il campo "+fielda+" non è definito");return;};
		listdiv=self.document.getElementById(divname);
		if(!listdiv)	{alert("BUG: Il riquadro "+divname+" non è definito");return;};
valore=listfield.value;
var reg = new RegExp(","+nrdoc+",")
listfield.value=valore.replace(reg,",");		
hide('alle'+nrdoc);
formobj['allegaticount'].value--;
if (formobj['allegaticount'].value==0) {listdiv.innerHTML="&#160;Nessun documento allegato"};

//var prova = self.document.getElementById("allesearch");
//alert(prova.getElementById("allelist") );

//alert(self.document.getElementById("daalle"+nrdoc).innerHTML );
};


// **** TOGLI ALLEGATI.... 
function deallegaNEW(frmname,divname,fielda,nrdoc)
{alert(document.alleserach.location);
		formobj=document.alleserach.forms[frmname];
		if(!formobj)	{alert("BUG: Il form "+frmname+" non è definito");return;};
		listfield=formobj[fielda];
		if(!listfield)	{alert("BUG: Il campo "+fielda+" non è definito");return;};
		listdiv=document.getElementById(divname);
		if(!listdiv)	{alert("BUG: Il riquadro "+divname+" non è definito");return;};

valore=listfield.value;
var reg = new RegExp(","+nrdoc+",")
listfield.value=valore.replace(reg,",");
hide('alle'+nrdoc);
formobj['allegaticount'].value--;

if (formobj['allegaticount'].value==0) {listdiv.innerHTML="&#160;Nessun documento allegato"};
};









// **** METTI ALLEGATI
function OLDallega(frmname,divname,fielda,nrdoc,descstring)
{
		formobj=top.document.forms[frmname];
		if(!formobj)	{alert("BUG: Il form "+frmname+" non è definito");return;};
		destfield=formobj[fielda];
		if(!destfield)	{alert("BUG: Il campo "+fielda+" non è definito");return;};
		destdiv=top.document.getElementById(divname);
		if(!destdiv)	{alert("BUG: Il riquadro "+divname+" non è definito");return;};

		if (destfield.value.indexOf(','+nrdoc+',')==-1) 
			{
				if (destdiv.innerHTML.indexOf("Nessun documento allegato")>-1) {destdiv.innerHTML=""};
			destdiv.innerHTML=destdiv.innerHTML+descstring;
			destfield.value=destfield.value+nrdoc+',';
			}
		
};


// **** TOGLI ALLEGATI.... NON va per la differenza " fra firefox e IE...
function OLD_deallega(frmname,divname,fielda,nrdoc)
{
		formobj=top.document.forms[frmname];
		if(!formobj)	{alert("BUG: Il form "+frmname+" non è definito");return;};
		listfield=formobj[fielda];
		if(!listfield)	{alert("BUG: Il campo "+fielda+" non è definito");return;};
		listdiv=top.document.getElementById(divname);
		if(!listdiv)	{alert("BUG: Il riquadro "+divname+" non è definito");return;};

valore=listfield.value;
var reg = new RegExp(","+nrdoc+",")
listfield.value=valore.replace(reg,",");

stringa=listdiv.innerHTML;
//alert(stringa);
var reg = new RegExp("<div id=alle"+nrdoc+".*</div>");
// /<(.*)>.*<\/\1>/
listdiv.innerHTML=stringa.replace(reg,"");
if (listdiv.innerHTML.length==0) {listdiv.innerHTML="&#160;Nessun documento allegato"};
};




// TUTTO MAIUSCOLO
function allup(frmname,fielda) {
	formobj=document.forms[frmname];
	if(!formobj)	{alert("BUG: Il form "+frmname+" non è definito");return;}
	if(!formobj[fielda])	{alert("BUG: Il campo "+fielda+" non è definito");return;}	
	if (formobj[fielda].value!='') {if (confirm('TRASFORMARE TUTTO IN MAIUSCOLO ?')){formobj[fielda].value=formobj[fielda].value.toUpperCase();}};
};

//tutto minuscolo
function alldown(frmname,fielda) {
	formobj=document.forms[frmname];
	if(!formobj)	{alert("BUG: Il form "+frmname+" non è definito");return;}
	if(!formobj[fielda])	{alert("BUG: Il campo "+fielda+" non è definito");return;}	
	if (formobj[fielda].value!='') {if (confirm('trasformare tutto in minuscolo ?')){formobj[fielda].value=formobj[fielda].value.toLowerCase();}};
};

//Tutte Le Prime Lettere Maiuscole
function firstallup(frmname,fielda){
	formobj=document.forms[frmname];
	if(!formobj)	{alert("BUG: Il form "+frmname+" non è definito");return;}
	if(!formobj[fielda])	{alert("BUG: Il campo "+fielda+" non è definito");return;}
	if (formobj[fielda].value!='') 
		{
			if (confirm('Trasformare Tutte Le Prime Lettere In Maiuscolo ?'))
				{
				myArray=formobj[fielda].value.split(" ");
				testo="";
				spac="";
				for (i=0;i<myArray.length; i++)
					{
					if (i!=0) {spac=" "};
					testo=testo+spac+myArray[i].substring(0,1).toUpperCase()+myArray[i].substring(1,myArray[i].length).toLowerCase();
					}
				formobj[fielda].value=testo
				}
		}
};

//Prima lettera. Maiuscola
function firstup(frmname,fielda){
	formobj=document.forms[frmname];
	if(!formobj)	{alert("BUG: Il form "+frmname+" non è definito");return;}
	if(!formobj[fielda])	{alert("BUG: Il campo "+fielda+" non è definito");return;}
	if (formobj[fielda].value!='') 
		{	
			if (confirm('Trasformare la prima lettera. La prima diventa maiuscola ?'))
				{			
				primo=1;
				testo="";
				lastc="";
				stringa=formobj[fielda].value;
				for (i=0;i<stringa.length; i++)
					{
					if (primo==1) {testo=testo+stringa.charAt(i).toUpperCase()}
					else {testo=testo+stringa.charAt(i).toLowerCase()};
	
					if (stringa.charAt(i)==" " && stringa.charAt(i-1)==".") {primo=1}
					else {primo=0};
					}
				formobj[fielda].value=testo
				}
		}
};

// ******** ONLOAD HANDLING

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
};

// ******** ONRESIZE HANDLING

function addResizeEvent(func) {
  var oldonresize = window.onresize;
  if (typeof window.onresize != 'function') {
    window.onresize = func;
  } else {
    window.onresize = function() {
      oldonresize();
      func();
    }
  }
};


// ******* SET A SINGLE VALUE OF A FORM
function setsinglevalue(frmname,fielda,valuea){
		formobj=document.forms[frmname];
		if(!formobj)	{alert("BUG: Il form "+frmname+" non è definito");return;};
		destfield=formobj[fielda];
		if(!destfield)	{alert("BUG: Il campo "+fielda+" non è definito");return;};
		destfield.value=valuea;
	}
;



	 
function hidepos(divfrom,corx,cory,divto) {
	hide(divfrom);
	hide(divto);
	};

function showpos(divfrom,corx,cory,divto) {
show(divfrom);
show(divto);	
position(divfrom,corx,cory,divto);
	};	



/*==================================================*
 $Id: filterlist.js,v 1.3 2003/10/08 17:13:49 pat Exp $
 Copyright 2003 Patrick Fitzgerald
 http://www.barelyfitz.com/webdesign/articles/filterlist/

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *==================================================*/

function filterlist(selectobj) {

  //==================================================
  // PARAMETERS
  //==================================================

  // HTML SELECT object
  // For example, set this to document.myform.myselect
  this.selectobj = selectobj;

  // Flags for regexp matching.
  // "i" = ignore case; "" = do not ignore case
  // You can use the set_ignore_case() method to set this
  this.flags = 'i';

  // Which parts of the select list do you want to match?
  this.match_text = true;
  this.match_value = false;

  // You can set the hook variable to a function that
  // is called whenever the select list is filtered.
  // For example:
  // myfilterlist.hook = function() { }

  // Flag for debug alerts
  // Set to true if you are having problems.
  this.show_debug = false;

  //==================================================
  // METHODS
  //==================================================

  //--------------------------------------------------
  this.init = function() {
    // This method initilizes the object.
    // This method is called automatically when you create the object.
    // You should call this again if you alter the selectobj parameter.

    if (!this.selectobj) return this.debug('selectobj not defined');
    if (!this.selectobj.options) return this.debug('selectobj.options not defined');

    // Make a copy of the select list options array
    this.optionscopy = new Array();
    if (this.selectobj && this.selectobj.options) {
      for (var i=0; i < this.selectobj.options.length; i++) {

        // Create a new Option
        this.optionscopy[i] = new Option();

        // Set the text for the Option
        this.optionscopy[i].text = selectobj.options[i].text;

        // Set the value for the Option.
        // If the value wasn't set in the original select list,
        // then use the text.
        if (selectobj.options[i].value) {
          this.optionscopy[i].value = selectobj.options[i].value;
        } else {
          this.optionscopy[i].value = selectobj.options[i].text;
        }

      }
    }
  }

  //--------------------------------------------------
  this.reset = function() {
    // This method resets the select list to the original state.
    // It also unselects all of the options.

    this.set('');
  }


  //--------------------------------------------------
  this.set = function(pattern) {
    // This method removes all of the options from the select list,
    // then adds only the options that match the pattern regexp.
    // It also unselects all of the options.

	  var loop=0, index=0, regexp, e;

    if (!this.selectobj) return this.debug('selectobj not defined');
    if (!this.selectobj.options) return this.debug('selectobj.options not defined');

		if (pattern.length<2) return 0;

    // Clear the select list so nothing is displayed
    this.selectobj.options.length = 0;

    // Set up the regular expression.
    // If there is an error in the regexp,
    // then return without selecting any items.
    try {

      // Initialize the regexp
      regexp = new RegExp(pattern, this.flags);

    } catch(e) {

      // There was an error creating the regexp.

      // If the user specified a function hook,
      // call it now, then return
      if (typeof this.hook == 'function') {
        this.hook();
      }

      return;
    }

    // Loop through the entire select list and
    // add the matching items to the select list
    for (loop=0; loop < this.optionscopy.length; loop++) {

      // This is the option that we're currently testing
      var option = this.optionscopy[loop];

      // Check if we have a match
      if ((this.match_text && regexp.test(option.text)) ||
          (this.match_value && regexp.test(option.value))) {

        // We have a match, so add this option to the select list
        // and increment the index

        this.selectobj.options[index++] =
          new Option(option.text, option.value, false);

      }
    }

    // If the user specified a function hook,
    // call it now
    if (typeof this.hook == 'function') {
      this.hook();
    }

  }


  //--------------------------------------------------
  this.set_ignore_case = function(value) {
    // This method sets the regexp flags.
    // If value is true, sets the flags to "i".
    // If value is false, sets the flags to "".

    if (value) {
      this.flags = 'i';
    } else {
      this.flags = '';
    }
  }


  //--------------------------------------------------
  this.debug = function(msg) {
    if (this.show_debug) {
      alert('FilterList: ' + msg);
    }
  }


  //==================================================
  // Initialize the object
  //==================================================
  this.init();

}

