/* - - - - - - - - - - - - -
- - - - - - - - - -
 JavaScript
 luned́ 3 ottobre 2005 1.05.37
 HAPedit 3.1.11.111
 - - - - - - - - - - - - - - - - - - - - - - -
*/

function URLEncode(plaintext)
{
        // The Javascript escape and unescape functions do not correspond
        // with what browsers actually do...
        var SAFECHARS = "0123456789" +                                        // Numeric
                                        "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +        // Alphabetic
                                        "abcdefghijklmnopqrstuvwxyz" +
                                        "-_.!~*'()";                                        // RFC2396 Mark characters
        var HEX = "0123456789ABCDEF";

//        var plaintext = document.URLForm.F1.value;
        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( encoded )
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef";
   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;
}


function CreaOggetto(){

   var richiesta;
   
   /*
   var browser = navigator.appName;
   if(browser == "Microsoft Internet Explorer"){
      richiesta = new ActiveXObject("Microsoft.XMLHTTP");
   } else {
      richiesta = new XMLHttpRequest();
   }
   */
   if (window.XMLHttpRequest) {
       richiesta = new XMLHttpRequest();
       
       /*
       if (richiesta.overrideMimeType) {
                richiesta.overrideMimeType('text/xml');
            }
            */
   } else if (window.ActiveXObject) { // IE
       try {
        richiesta = new ActiveXObject("Msxml2.XMLHTTP");
       } 
       catch (e) {
        try {
            richiesta = new ActiveXObject("Microsoft.XMLHTTP");
        } 
        catch (e) {}
       }
                                       
   } else {
       alert('Impossibile continuare: il tuo browser non supporta XMLHttpRequest');
   }

   return richiesta;
}

var http = CreaOggetto();


function controlla_regprocom(id_form,str_action){

      cod_reg = document.getElementById('opzionireg').value;
      cod_pro = document.getElementById('opzionipro').value;
      cod_com = document.getElementById('opzionicom').value;

      state_error = false;

      if(cod_reg == ''){
         document.getElementById('err_reg').innerHTML = '<div id="err_reg"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="red">Campo obbligatorio</font></div>';
         state_error = true;
      } else {
         document.getElementById('err_reg').innerHTML = '';
      }

      if(cod_pro == ''){
         document.getElementById('err_pro').innerHTML = '<div id="err_pro"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="red">Campo obbligatorio</font></div>';
         state_error = true;
      } else {
         document.getElementById('err_pro').innerHTML = '';
      }

      if(cod_com == ''){
         document.getElementById('err_com').innerHTML = '<div id="err_com"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="red">Campo obbligatorio</font></div>';
         state_error = true;
      } else {
         document.getElementById('err_com').innerHTML = '';
      }

      if(state_error == false){
         document.getElementById(id_form).action = str_action;
         document.getElementById(id_form).submit();
      }
}


function selector(livuser,cod_reg,cod_pro,cod_com,id_mappa){

    document.getElementById('reg').innerHTML = '<select name="REGIONE" id="opzionireg" onchange= "selector_pro(cod_pro,fl_enabled_pro,id_mappa)"><option value=""></option></select>';
    document.getElementById('pro').innerHTML = '<select name="PROVINCIA" id="opzionipro" onchange="selector_com(cod_com,fl_enabled_com,id_mappa)"><option value=""></option></select>';
    document.getElementById('com').innerHTML = '<select name="COMUNE" id="opzionicom"><option value=""></option></select>';

    if(livuser == 'NAZ'){
       fl_enabled_reg = 1;
       fl_enabled_pro = 1;
       fl_enabled_com = 1;
    }else if(livuser == 'REG'){
       fl_enabled_reg = 0;
       fl_enabled_pro = 1;
       fl_enabled_com = 1;
    }else if(livuser == 'PRO'){
       fl_enabled_reg = 0;
       fl_enabled_pro = 0;
       fl_enabled_com = 1;
    }else if(livuser == 'COM'){
       fl_enabled_reg = 0;
       fl_enabled_pro = 0;
       fl_enabled_com = 0;
    }

    selector_reg(cod_reg,fl_enabled_reg,id_mappa);
    selector_pro(cod_pro,fl_enabled_pro,id_mappa);
    selector_com(cod_com,fl_enabled_com,id_mappa);

    return null;

}

function selector_reg(cod_reg,fl_enabled,id_mappa){
     var browser = navigator.appName;

     if(browser == "Microsoft Internet Explorer"){
        flag_ajax = false;
     } else {
        //COMMENTATO PER FIREFOX 2.0 o SUP (PROBLEMI CON AJAX) 31-07-2007
        flag_ajax = true;
        //flag_ajax = false;
     }
     http.onreadystatechange = gestisciContenuto_reg;
     http.open("GET","http://www.fidc.it/test/fidc_sif/m_librerie/process.php?tipo=R&c_r="+cod_reg+"&enbl="+fl_enabled+"&map="+id_mappa,flag_ajax);
     http.send(null);                                

     return 1;
}


// E' Attivato dal campo Select "Regione" per costruire il campo select
// "Provincia" in base alla regione selezionata

function selector_pro(cod_pro,fl_enabled,id_mappa){

     // recupera l'oggetto form

     var sel_reg = document.getElementById('opzionireg');

     var browser = navigator.appName;

     if(browser == "Microsoft Internet Explorer"){
        flag_ajax = false;
     } else {
        //COMMENTATO PER FIREFOX 2.0 o SUP (PROBLEMI CON AJAX) 31-07-2007
        flag_ajax = true;
        //flag_ajax = false;
     }
   // alert(sel_reg.value);
      
     if(sel_reg.value != ""){
        http.open('GET','http://www.fidc.it/test/fidc_sif/m_librerie/process.php?tipo=P&c_p='+cod_pro+'&c_r='+sel_reg.value+'&enbl='+fl_enabled+'&map='+id_mappa,flag_ajax);
        http.onreadystatechange = gestisciContenuto_pro;
        http.send(null);
     } else {
        document.getElementById('pro').innerHTML = '<select id="opzionipro" name="PROVINCIA"><option value=""></option></select>';
        document.getElementById('com').innerHTML = '<select id="opzionicom" name="COMUNE"><option value=""></option></select>';
     }

     return 1;
}


// E' Attivato dal campo Select "Provincia" per costruire il campo select
// "Comuni" in base alla provincia selezionata

function selector_com(cod_com,fl_enabled,id_mappa){

     // recupera l'oggetto form

     var sel_pro = document.getElementById('opzionipro');

     var browser = navigator.appName;

     if(browser == "Microsoft Internet Explorer"){
        flag_ajax = false;
     } else {
        //COMMENTATO PER FIREFOX 2.0 o SUP (PROBLEMI CON AJAX) 31-07-2007
        flag_ajax = true;
        //flag_ajax = false;
     }

     if(sel_pro.value != ""){
        http.open('GET','http://www.fidc.it/test/fidc_sif/m_librerie/process.php?tipo=C&c_c='+cod_com+'&c_p='+sel_pro.value+'&enbl='+fl_enabled+'&map='+id_mappa,flag_ajax);
        http.onreadystatechange = gestisciContenuto_com;
        http.send(null);
     } else {
        document.getElementById('com').innerHTML = '<select id="opzionicom" name="COMUNE"><option value=""></option></select>' ;
     }

     return 1;
}


/*

Stati della variabile "http"

  0: Uninizialized
  1: Loading
  2: Loaded
  3: Interactive
  4: Finished

*/

function gestisciContenuto_reg(){

 //alert(http.readyState);
     
     if(http.readyState == 4){
     
        var response = http.responseText;
        
        document.getElementById('str_reg').innerHTML = 'Regione*:';
        document.getElementById('str_pro').innerHTML = 'Provincia*:';
        document.getElementById('str_com').innerHTML = 'Comune*:';

        document.getElementById('reg').innerHTML = URLDecode( response );
        document.getElementById('pro').innerHTML = '<select id="opzionipro" name="PROVINCIA"><option value=""></option></select>';
        document.getElementById('com').innerHTML = '<select id="opzionicom" name="COMUNE"><option value=""></option></select>';
        }
}


function gestisciContenuto_pro(){
 
     if(http.readyState == 4){

        var response = http.responseText;

        document.getElementById('str_reg').innerHTML = 'Regione*:';
        document.getElementById('str_pro').innerHTML = 'Provincia*:';
        document.getElementById('str_com').innerHTML = 'Comune*:';

        document.getElementById('pro').innerHTML =  URLDecode( response );
        document.getElementById('com').innerHTML = '<select id="opzionicom" name="COMUNE"><option value=""></option></select>';
     }
}

function gestisciContenuto_com(){
     if(http.readyState == 4){

        var response = http.responseText;

        document.getElementById('str_reg').innerHTML = 'Regione*:';
        document.getElementById('str_pro').innerHTML = 'Provincia*:';
        document.getElementById('str_com').innerHTML = 'Comune*:';

        document.getElementById('com').innerHTML = URLDecode(response);
     }
}


function reg_action(){
     var sel_tipo_tessera = document.getElementById('opzionitess');
     if(sel_tipo_tessera != null){
        sel_tipo(sel_tipo_tessera.value);
     }
}


function sel_tipo(tipo_tes){
     document.getElementById('tess').innerHTML = '<select name="TIPO_TES" id="opzionitess"><option value=""></option></select>';

     var c_reg = document.getElementById('opzionireg').value;
     if(c_reg == ''){
        c_reg = '99999';
     }
     sel_tipo_tes(c_reg,tipo_tes);

     return null;
}


function sel_tipo_tes(cod_reg,tipo_tes){
     var browser = navigator.appName;

     if(browser == "Microsoft Internet Explorer"){
        flag_ajax = false;
     } else {
        //COMMENTATO PER FIREFOX 2.0 o SUP (PROBLEMI CON AJAX) 31-07-2007
        flag_ajax = true;
        //flag_ajax = false;
     }
     http.open('GET','http://www.fidc.it/test/fidc_sif/m_librerie/get_el_tipotes.php?c_r='+cod_reg+'&t_t='+tipo_tes,flag_ajax);
     http.onreadystatechange = gestisciContenuto_tess;
     http.send(null);

     return 1;
}


function gestisciContenuto_tess(){
     if(http.readyState == 4){

        var response = http.responseText;
        document.getElementById('str_tess').innerHTML = 'Tipo Tessera*:';

        document.getElementById('tess').innerHTML = response;
     }
}





