// JavaScript Document

var v = new Array();
v["username"] = 'Utente';
v["password"] = 'Pass';

function InputDel(campo) {
	if (campo.value == v[campo.name]) {
		campo.value= '';
	}	
}

function InputFill(campo) {
	if (campo.value=='') {
		campo.value= v[campo.name];
	}	
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
  var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
  if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function PopupPic(sPicURL) { 
// dimensioni iniziali finestra prima che si riadatti
 popwidth = 250;
 popheight = 400;
 // apre il popup e passa la url immagine
 window.open( "/popups/pop_fit.html?"+sPicURL, "", 
 "left=" + Math.floor((screen.width - popwidth) / 2) + ",top=" + Math.floor((screen.height - popheight) / 2) +
 "toolbar=no,menubar=no,location=no,scrollbars=no,resizable=yes,width="+popwidth+",height="+popheight); 
}

function Credits(page) {
popwidth = 300;
popheight = 270;
OpenWin = this.open(page, "PopWin3", "toolbar=no, menubar=no, location=no, scrollbars=no, resizable=no, width="+popwidth+", height="+popheight+", left=" + Math.floor((screen.width - popwidth) / 2) + ", top=" + Math.floor((screen.height - popheight) / 2));
};

function controllo_ricerca(theForm){
	if (theForm.testo_ricerca.value == "" || theForm.testo_ricerca.value == " ") {
    	alert("E' necessario inserire il testo da ricercare.\nGrazie.");
    	theForm.testo_ricerca.focus();
    	return(false);
	}
}

function ControlloLogin(theForm){
	if (theForm.username.value == "") {
    	alert("Per favore inserire l'utente.\nGrazie.");
    	theForm.username.focus();
    	return(false);
	}
	if (theForm.password.value == "") {
    	alert("Per favore inserire la password.\nGrazie.");
    	theForm.password.focus();
    	return(false);
	}	
}

/////////////////// Form registrazione

function reg_form_field_set(theForm){

  if (theForm.data_nascita.value){
    a = theForm.data_nascita.value.split(/\//); 
    d = new Date(a[2], a[1] - 1, a[0]); 
    theForm.data_nascita.value = d.format('Ymd');
  }

// Questa funzione scorre tutti valori degli elementi select, radio e checkbox della form, 
// prima del submit e ficca i vaori nei cossispondenti hidden separati da un ';'

  var form_elems = theForm.elements;
  for (var i=0; i<form_elems.length; i++) {
    if (form_elems[i].name.charAt(0) == '_') {			
		  ////select
      if (form_elems[i].type.match(/select/i)) {	  
	    var hid_field_name = form_elems[i].name.slice(1);
        var hid_field_obj = eval('theForm.'+hid_field_name);
	      hid_field_obj.value = '';
        var sel_opts = form_elems[i].options;		
	      for (var o=0; o<sel_opts.length; o++) {
          if (sel_opts[o].selected) {
	        hid_field_obj.value += sel_opts[o].value+';';			  
          }
        }
        hid_field_obj.value = hid_field_obj.value.slice(0, -1);
			}			
	    ////radio
      else if (form_elems[i].type.match(/radio/i)) {
        if (form_elems[i].name!=prec_field_name){
				  var prec_field_name = form_elems[i].name;
		      var hid_field_name = form_elems[i].name.slice(1);
          var hid_field_obj = eval('theForm.'+hid_field_name);
	        hid_field_obj.value = '';		
		      radio_obj = eval('theForm.'+form_elems[i].name);
	        for (var o=0; o<radio_obj.length; o++) {			
            if (radio_obj[o].checked) {
	            hid_field_obj.value += radio_obj[o].value;				
            }
					}
				}
      }			
	    ////checkbox
      else if (form_elems[i].type.match(/checkbox/i)) {
        if (form_elems[i].name!=prec_field_name){
		      var hid_field_name = form_elems[i].name.slice(1);
          var hid_field_obj = eval('theForm.'+hid_field_name);
	        hid_field_obj.value = '';
					if (form_elems[i].checked){
            hid_field_obj.value += form_elems[i].value;
//	          msg = 'El name: '+form_elems[i].name+' - Hid name: '+hid_field_name+' - Hid val: '+hid_field_obj.value;
//					  alert(msg);
//	        document.getElementById('messaggio_debug').innerHTML += msg+'<BR><BR>';
				  }
				}
			}
	  }	  
  }	
//  return false;
}

// Questa funzione scorre tutti gli elementi della form, poi trova gli elementi "slect",
// poi splitta il valore dell'elemento che ha nome "_nome-select" che serve come contenitore 
// dei valori da selezionare, poi seleziona le options della select corrispondenti

function SelezionaCampi(formid) {
  var msg = "";
  var theForm = document.getElementById(formid);
  var form_elems = theForm.elements;
  for (var i=0; i<form_elems.length; i++) {	
	  ////select
    if (form_elems[i].type.match(/select/i)) {	
      var hid_field_name = form_elems[i].name.slice(1);	
      var eval_str = 'theForm.'+hid_field_name+'.value.split(\';\')';
	    var sel_values = eval(eval_str);
      var sel_opts = form_elems[i].options; 	  
  	  for (var v=0; v<sel_values.length; v++) {  
  	    for (var o=0; o<sel_opts.length; o++) {
  		    if (sel_opts[o].value == sel_values[v] && sel_opts[o].value != "") {
  		      sel_opts[o].selected = true;
  		      break;			  
  		    }			
  	    }
      }		  
    }
	  ////radio
    if (form_elems[i].type.match(/radio/i)) {
      var hid_field_name = form_elems[i].name.slice(1);
      var hid_field_value = eval('theForm.'+hid_field_name+'.value');			
//	    msg = 'El name: '+form_elems[i].name+' - El value: '+form_elems[i].value;
//	    document.getElementById('messaggio_debug').innerHTML += msg+'<BR><BR>';			
	    if (form_elems[i].value == hid_field_value) {
		    form_elems[i].checked = true;				
//	    msg = 'SELECTED: '+hid_field_name+' - El value: '+form_elems[i].value+' - Hid val: '+hid_field_value;
//	    document.getElementById('messaggio_debug').innerHTML += msg+'<BR><BR>';	
	    }		
    }		
	  ////checkbox
    if (form_elems[i].type.match(/checkbox/i)) {	
      var hid_field_name = form_elems[i].name.slice(1);			
      var hid_field_value = eval('theForm.'+hid_field_name+'.value');			
			
//	    msg = 'El name: '+form_elems[i].name+' - El value: '+form_elems[i].value;
//	    document.getElementById('messaggio_debug').innerHTML += msg+'<BR><BR>';			
			
	    if (form_elems[i].value == hid_field_value) {
		    form_elems[i].checked = true;				
				
//	      msg = 'SELECTED: '+hid_field_name+' - El value: '+form_elems[i].value+' - Hid val: '+hid_field_value;
//	      document.getElementById('messaggio_debug').innerHTML += msg+'<BR><BR>';	
	    }		
    }		
  }	
}


/////////////////// Fine form di registrazione

function MostraTab(tabid){
  document.location.href = '#top';
  TabbedPanels1.showPanel(tabid);
  if (tabid == 5) {
    return(true);
  } else {
    return(false);
  }
}

function URLEncode(s)
{
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var plaintext = s;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	
	return encoded;
};

function URLDecode(s)
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   var encoded = s;
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	} // while
   
   return plaintext;
};

