Utente:Dr Brains/Sandbox.js

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.


Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.

/* 
 --------------------------------------------------------------------------------------
 ---------LLLL---------III--------------------------RRRRRRRRRR--------CCCCC------------
 ---------LLLL---------III--------------------------RRRRRRRRRRRR----CCCCCCCCC----------
 ---------LLLL--------------------------------------RRR------RRR---CCC-----CCC---------
 ---------LLLL---------III--VV-----VV--EEEEEEEEE----RRR------RRR--CCC------------------
 ---------LLLL---------III---VV---VV---EEE----------RRRRRRRRRRR---CCC------------------
 ---------LLLL---------III---VV---VV---EEEEEE-------RRRRRRRRRR----CCC------------------
 ---------LLLL---------III----VV-VV----EEEEEE-------RRR-----RRR----CCC-----CCC---------
 ---------LLLLLLLLLLL--III----VVVVV----EEE----------RRR------RRR----CCCCCCCCC----------
 ---------LLLLLLLLLLL--III-----VVV-----EEEEEEEEE----RRR-------RRR-----CCCCC------------
 --------------------------------------------------------------------------------------
 
'''Extension de LiveRC'''
 
// Permette di inserire i template di avviso in cima alle voci
 
* Licence : ...?
* Documentation : 
* Auteur : [[:it:User:Jalo]] [[:it:User:Rotpunkt]] [[:fr:User:Dr Brains]]
*
* This script contains functions (InserisciTemplate_showDialog, InserisciTemplate_dumpTemplate and InserisciTemplate_buildInputEl)
* and formats (all template definitions) modified from:
* http://it.wikipedia.org/w/index.php?title=MediaWiki:Gadget-tb-base.js&oldid=66478020
* http://it.wikipedia.org/w/index.php?title=MediaWiki:Gadget-tb-* (for the templates)
* author Rotpunkt (http://it.wikipedia.org/wiki/Utente:Rotpunkt)
*
* Développement et maintenance :

{{Catégorisation JS|LiveRC}}
*/
//<source lang=javascript>

if (typeof(lrcHooks)!="undefined") { // DÉBUT IF

/////////////////////////////// CSS ///////////////////////////////////////////////////////

 importStylesheetURI('//it.wikipedia.org/w/index.php?title=MediaWiki:Gadget-LiveRC 1x.js/InserisciTemplate.css&action=raw&ctype=text/css');

///////////////////////// VARIABLES ////////////////////////////////////////////////////////

//// PARAMÈTRES PERSONNALISABLES ////

var templateArguments_A = [
"", "alimentazione", "animazione", "anime e manga", "antropologia", "antroponimi", "araldica", "archeologia", "associazioni", "astronautica", "aviazione", "cinema", "cultura", "danza", "design", "diritto", "ecologia", "economia", "editoria", "energia", "fantascienza", "fantasy", "filatelia", "filosofia", 
"fotografia", "fumetti", "geografia", "giochi", "giornalismo", "guerra", "informatica", "istruzione", "lavoro", "LGBT", "linguistica", "marina", "mitologia", "moda", "musica", "natura", "nautica", "numismatica", "onorificenze", "paleontologia", "politica", "pornografia", "professioni", "psicologia", 
"scautismo", "scienza", "sessualità", "società", "sociologia", "sport", "storia", "trasporti", "turismo", "urbanistica", "voci comuni"
];

var templateArguments_C = [
"", "alimentazione", "animazione", "anime e manga", "antropologia", "antroponimi", "araldica", "archeologia", "architettura", "arte", "associazioni", "biografie", "cinema", "cronologia", "cultura", "diritto", "ecologia", "editoria", "energia", "enologia", "fantascienza", "filatelia", "filosofia", 
"fotografia", "fumetti", "geografia", "giochi", "guerra", "immaginario", "informatica", "lavoro", "leggende", "letteratura", "LGBT", "linguistica", "medicina", "metrologia", "mezzi di trasporto", "mitologia", "moda", "musica", "natura", "neuroscienze", "numismatica", "paleontologia", "patrimoni dell'umanità", 
"educazione", "pesca", "politica", "pornografia", "professioni", "psicologia", "religione", "scautismo", "scienza", "sessualità", "società", "sociologia", "sport", "storia", "teatro", "tecnologia", "trasporti", "turismo", "urbanistica", "vessillologia", "voci comuni"
];

var templateArguments_E = [
"", "alimentazione", "animazione", "antropologia", "antroponimi", "araldica", "archeologia", "architettura", "aree naturali protette", "astronomia", "aviazione", "biografie", "biologia", "botanica", "chimica", "cinema", "cucina", "cultura", "danza", "diritto", "ecologia", "economia", "editoria", 
"elettronica", "enologia", "fantascienza", "filatelia", "filosofia", "fisica", "fotografia", "fumetti", "geografia", "geologia", "giochi", "giornalismo", "guerra", "informatica", "ingegneria", "istruzione", "letteratura", "LGBT", "lingue", "linguistica", "marina", "meccanica", "medicina", "mineralogia", 
"mitologia", "moda", "musei", "musica", "natura", "neopaganesimo", "neuroscienze", "nobiltà", "numismatica", "paranormale", "pesca", "politica", "pornografia", "professioni", "psicologia", "religione", "scautismo", "scienza", "sessualità", "società", "sociologia", "spettacolo", "sport", "storia", 
"teatro", "tecnologia", "template", "trasporti", "turismo", "università", "urbanistica", "zoologia"
];

var templateArguments_F = [
"", "araldica", "archeologia", "arte", "cronologia", "cultura", "geografia", "giochi", "musica", "natura", "nobiltà", "onomastica", "patrimoni dell'umanità", "scienza", "società", "sport", "storia", "tecnologia", "trasporti", "voci comuni"
];

var templateArguments_O = [
"", "aviazione", "alimentazione", "animazione", "antropologia", "antroponimi", "araldica", "archeologia", "architettura", "arte", "biografie", "cinema", "cultura", "danza", "diritto", "economia", "editoria", "filatelia", "filosofia", "fumetti", "geografia", "geologia", "giochi", "guerra", "istruzione", 
"letteratura", "linguistica", "marina", "medicina", "mitologia", "musica", "natura", "neuroscienze", "numismatica", "paleontologia", "politica", "professioni", "pseudoscienza", "psicologia", "religione", "scautismo", "scienza", "scienze sociali", "scienze umanistiche", "sessualità", "società", 
"sport", "storia", "storia di famiglia", "teatro", "tecnologia", "trasporti", "turismo", "urbanistica", "valute", "vessillologia", "voci comuni"
];

var templateArguments_P = [
"", "alimentazione", "animazione", "antropologia", "antroponimi", "archeologia", "architettura", "associazioni", "astronautica", "aziende", "biografie", "botanica", "cinema", "cucina", "cultura", "design", "diritto", "ecologia", "economia", "energia", "fantasy", "filatelia", "filosofia", "fotografia", 
"fumetti", "geografia", "giochi", "Internet", "istruzione", "LGBT", "linguistica", "marina", "mezzi di trasporto", "mitologia", "moda", "montagna", "musica", "natura", "numismatica", "pornografia", "professioni", "psicologia", "radio", "religione", "scautismo", "scienza", "sessualità", "società", 
"sociologia", "storia", "tecnologia", "televisione", "trasporti", "turismo", "urbanistica", "voci comuni"
];

var templateArguments_S = [
"", "Africa", "agricoltura", "album musicali", "alimentazione", "alpinismo", "alpinisti", "anfibi", "animazione", "anime e manga", "antica Grecia", "antica Roma", "antropologia", "archeologia", "architetti", "architettura", 
"aree naturali protette", "arte", "associazioni", "astronomia", "attori", "aviazione", "aziende", "beach volley", "biografie", "biologia", "Bisanzio", "botanica", "calciatori", "calcio", "cantanti", "cattolicesimo", "cestisti", 
"chiese", "chimica", "chimica fisica", "ciclismo", "cinema", "città", "collezionismo", "conflitti", "criminalità", "cristianesimo", "cucina", "danza", "design", "diritto", "Disney", "ecologia", "economia", "editoria", "educazione", 
"erotismo", "fantascienza", "fantasy", "Ferrari", "ferrovie", "film", "filologia", "filosofia", "fisica", "fiumi", "fumetti", "geografia", "geologia", "geometria", "giochi", "giornalisti", "gruppi musicali", "guerra", "guerre napoleoniche", 
"Guerre stellari", "hip hop", "industria", "informatica", "ingegneria", "isole", "istituzioni", "istruzione", "letteratura", "LGBT", "linguistica", "logica", "mammiferi", "marina", "mass media", "matematica", "meccanica", "medicina", "metal", "mineralogia", 
"mitologia", "mitologia greca", "mitologia romana", "moda", "montagne", "musica", "musica classica", "musicisti", "numismatica", "numismatici", "nuoto", "pallacanestro", "pallavolo", "paranormale", "patrimoni dell'umanità", "personaggi immaginari", "pesci", 
"piante", "piloti automobilistici", "pittura", "Pokémon", "politica", "politici", "pornografia", "psicologia", "punk", "religione", "rettili", "rock", "santi", "scautismo", "sci", "scienza", "scrittori", "scultura", "seconda guerra mondiale", "singoli discografici", 
"sociologia", "sostanze chimiche", "sport", "sportivi", "stadi", "Star Trek", "storia", "storia antica", "storia contemporanea", "storia medievale", "storia moderna", "teatro", "tecnologia", "telecomunicazioni", "televisione", "Terra di Mezzo", "trasporti", 
"turismo", "uccelli", "urbanistica", "vescovi", "videogiochi", "voci comuni", "wrestling"
];

var templateArguments_T = [
"", "alimentazione", "alpinismo", "animali", "animazione", "antropologia", "antroponimi", "araldica", "archeologia", "architettura", "artropodi", "associazioni", "astrologia", "astronautica", "astronomia", "aviazione", "aziende", "biografie", "biologia", "botanica", "chimica", "cinema", "costume", 
"cucina", "cultura", "danza", "design", "diritto", "Disney", "ebraismo", "ecologia", "editoria", "elettronica", "energia", "filatelia", "filosofia", "fisica", "fotografia", "fumetti", "geologia", "giochi", "giornalismo", "grafica", "guerra", "ingegneria", "istruzione", "LGBT", "linguistica", "marina", 
"meccanica", "medicina", "meteorologia", "micologia", "mitologia", "moda", "musei", "musica", "natura", "neopaganesimo", "numismatica", "paleontologia", "pesca", "politica", "pornografia", "professioni", "pseudoscienza", "psicologia", "psicometria", "pubblica amministrazione", "religione", "scautismo", 
"scienza", "scienze umanistiche", "sessualità", "Sicilia", "società", "sociologia", "Spagna", "spettacolo", "sport", "storia", "teatro", "tecnologia", "televisione", "trasporti", "turismo", "urbanistica", "vessillologia", "voci comuni", "zoologia"
];

var templateArguments_U = [
"", "anime e manga", "antropologia", "antroponimi", "araldica", "archeologia", "associazioni", "astronomia", "aviazione", "aziende", "biografie", "cinema", "controlli automatici", "cronologia", "cucina", "cultura", "danza", "diritto", "ecologia", "editoria", "fantasy", "filatelia", "filosofia", 
"fumetti", "giochi", "giornalismo", "istruzione", "lavoro", "letteratura", "LGBT", "lingue", "linguistica", "marina", "mitologia", "moda", "musei", "musica", "natura", "numismatica", "paleontologia", "politica", "pornografia", "radio", "religione", "scautismo", "scienza", "sessualità", "società", 
"sociologia", "spettacolo", "sport", "teatro", "tecnologia", "televisione", "template", "trasporti", "turismo", "urbanistica", "voci comuni", "zoologia"
];

var templateArguments_Categorizzare = [
"", "alimentazione", "anime e manga", "antroponimi", "araldica", "archeologia", "architettura", "arte", "associazioni", "astrologia", "aviazione", "aziende", "biografie", "cucina", "diritto", "ecologia", "economia", "editoria", "filatelia", "filosofia", "fotografia", "fumetti", "geografia", 
"geologia", "giochi", "guerra", "ingegneria", "istruzione", "letteratura", "LGBT", "linguistica", "marina", "medicina", "mineralogia", "mitologia", "moda", "musica", "numismatica", "politica", "pornografia", "psicologia", "religione", "scautismo", "scienza", "Sicilia", "società", "sport", 
"storia", "teatro", "tecnologia", "televisione", "template", "trasporti"
];

var templateArguments_Correggere = [
"", "alimentazione", "animazione", "anime e manga", "antropologia", "araldica", "archeologia", "architettura", "arte", "associazioni", "astronautica", "astronomia", "aviazione", "aziende", "biografie", "biologia", "chimica", "cinema", "criminalità", "cucina", "cultura", "danza", "diritto", "economia", 
"editoria", "energia", "fantasy", "filosofia", "fisica", "fotografia", "fumetti", "geografia", "geologia", "giochi", "giornalismo", "guerra", "immaginario", "informatica", "ingegneria", "istruzione", "lavoro", "letteratura", "LGBT", "lingue", "linguistica", "marina", "matematica", "medicina", "meteorologia", 
"mitologia", "moda", "musica", "natura", "nobiltà", "numismatica", "politica", "pornografia", "professioni", "pseudoscienza", "psicologia", "pubblicità", "radio", "religione", "scautismo", "scienza", "sessualità", "società", "sociologia", "sport", "storia", "storia di famiglia", "teatro", "tecnologia", 
"televisione", "trasporti", "videogiochi", "voci comuni"
];

var templateArguments_InCorso = [
"", "astronautica", "catastrofi", "conflitti", "Europa", "fumetti", "informatica", "musica", "politica", "sport", "Stati Uniti d'America", "televisione", "trasporti"
];

var templateArguments_DaAggiornare = [
"", "animazione", "astrologia", "aziende", "biografie", "cultura", "diritto", "filatelia", "geografia", "guerra", "ingegneria", "istruzione", "linguistica", "marina", "moda", "montagna", "natura", "numismatica", "psicologia", "scautismo", "scienza", "scienze umanistiche", "servizi pubblici", "società", 
"spettacolo", "sport", "storia", "tecnologia", "template", "trasporti"
];

var templateArguments_Controlcopy = [
"", "animazione", "anime e manga", "antropologia", "archeologia", "architettura", "aree naturali protette", "associazioni", "astronomia", "aviazione", "aziende", "biografie", "botanica", "chimica", "cinema", "costume", "cucina", "cultura", "design", "diritto", "ecologia", "economia", "editoria", 
"enologia", "fantascienza", "fantasy", "filatelia", "filosofia", "fisica", "fotografia", "fumetti", "geografia", "geologia", "giochi", "giornalismo", "guerra", "informatica", "ingegneria", "istruzione", "lavoro", "leggende", "letteratura", "LGBT", "linguistica", "marina", "medicina", "meteorologia", 
"mineralogia", "mitologia", "moda", "musica", "natura", "neopaganesimo", "numismatica", "politica", "pornografia", "professioni", "pseudoscienza", "psicologia", "radio", "scautismo", "scienza", "sessualità", "società", "sociologia", "spettacolo", "sport", "storia", "teatro", "tecnologia", 
"televisione", "trasporti", "turismo", "voci comuni", "zoologia"
];

var templateArguments_Cancellazione = [
"", "agricoltura", "alimentazione", "animazione", "anime e manga", "antroponimi", "araldica", "archeologia", "architettura", "associazioni", "aziende", "biografie", "cinema", "comunicazione", "criminalità", "cronologia", "cultura", "danza", "design", "diritto", "ecologia", "editoria", "enti pubblici", 
"esoterismo", "fantascienza", "fantasy", "filatelia", "filosofia", "fisica", "fotografia", "fumetti", "geografia", "giornalismo", "guerra", "immaginario", "istruzione", "letteratura", "LGBT", "linguistica", "marina", "mitologia", "moda", "musica", "nautica", "nobiltà", "numismatica", "politica", "pornografia", 
"professioni", "psicologia", "radio", "scautismo", "scienza", "sessualità", "società", "sociologia", "software libero", "solidarietà", "spettacolo", "storia", "teatro", "tecnologia", "televisione", "template", "trasporti", "turismo", "università", "urbanistica", "voci comuni"
];

var templateArguments_CancellaSubito = [
"", "1. pagine vuote, di prova", "2. solo frasi offensive", "3. solo lingua straniera", "4. promozionali o CV", "5. pagine doppie", "6. categorie vuote", "7. pagine già cancellate", "8. pagine create per l'inversione", "9. redirect errati", "10. talk e sottopag. di pagine già canc.", "11. immagini doppie ed orfane", 
"12. immagini in evidente copyviol", "13. pagine copiate senza licenza libera", "14. immagini da verificare da tanto", "15. pagine \"Utente:\" di nessuno", "16. pagine già trasferite" , "17. sottopag. \"Utente:\" richieste da lui"
];

/* Template list:
 *
 * 'template':   (string)  name of the template to be inserted
 * 'string':     (string)  option label in the template combo box
 * 'where':      (string)  where to insert the template in the page. Accepted values are: top, bottom
 * 'noinclude':  (boolean) whether the template shall be tagged with "noinclude" 
 * 'subst':      (boolean) whether the template shall be "substed"
 * 'parameters': (object)  list of the parameters of the template
    * 'name':       (string)  parameter name shown in the popup dialog
    * 'type':       (string)  type of the argument. Accepted values are: string, select
    * 'value':
        * type==string    (string) Some text (or nothing)
        * type==select    (array)  The list of combo box options
*/

Custom_lstMyTemplate = {};
lstMyTemplate = {
  'A': { template:'A',
    string:'Aiutare',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            motivo:     {name: 'Motivo',     type: 'string'},
            argomento:  {name: 'Argomento',  type: 'select', value: templateArguments_A},
            argomento2: {name: 'Argomento2', type: 'select', value: templateArguments_A},
            mese:       {name: 'Mese',       type: 'string', value: '{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}'}
    }
  },
  'C': { template:'C',
    string:'Controllare',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            motivo:    {name: 'Motivo',    type: 'string'},
            argomento: {name: 'Argomento', type: 'select', value: templateArguments_C},
            mese:      {name: 'Mese',      type: 'string', value: '{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}'}
    }
  },
  'E': { template:'E',
    string:'Enciclopedicità',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            motivo:     {name: 'Motivo',     type: 'string'},
            argomento:  {name: 'Argomento',  type: 'select', value: templateArguments_E},
            argomento2: {name: 'Argomento2', type: 'select', value: templateArguments_E},
            mese:       {name: 'Mese',       type: 'string' , value: '{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}'}
    }
  },
  'F': { template:'F',
    string:'Senza fonti',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            commento:  {name: 'Commento',  type: 'string'},
            argomento: {name: 'Argomento', type: 'select', value: templateArguments_F},
            mese:      {name: 'Mese',      type: 'string', value: '{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}'}
    }
  },
  'O': { template:'O',
    string:'Orfana',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            argomento:  {name: 'Argomento',  type: 'select', value: templateArguments_O},
            argomento2: {name: 'Argomento2', type: 'select', value: templateArguments_O},
            mese:       {name: 'Mese',       type: 'string', value: '{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}'}
    }
  },
  'P': { template:'P',
    string:'POV',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            motivo:     {name: 'Motivo',     type: 'string'},
            argomento:  {name: 'Argomento',  type: 'select', value: templateArguments_P},
            argomento2: {name: 'Argomento2', type: 'select', value: templateArguments_P},
            mese:       {name: 'Mese',       type: 'string', value: '{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}'}
    }
  },
  'S': { template:'S',
    string:'Stub',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            argomento:  {name: 'Argomento',   type: 'select', value: templateArguments_S},
            argomento2: {name: 'Argomento2',  type: 'select', value: templateArguments_S}
    }
  },
  'T': { template:'T',
    string:'Tradurre',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            lingua:    {name: 'Lingua',     type: 'string'},
            argomento: {name: 'Argomento',  type: 'select', value: templateArguments_T},
            mese:       {name: 'Mese',      type: 'string', value: '{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}'}
    }
  },
  'U': { template:'U',
    string:'Unire',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            pagina:      {name: 'Pagina',       type: 'string'},
            verso:       {name: 'Verso',        type: 'select', value: ["a", "da"]},
            discussione: {name: 'Discussione',  type: 'string'},
            argomento:   {name: 'Argomento',    type: 'select', value: templateArguments_U},
            argomento2:  {name: 'Argomento2',   type: 'select', value: templateArguments_U},
            sezione:     {name: 'Sezione',      type: 'string'},
            commento:    {name: 'Commento',     type: 'string'},
            data:        {name: 'Data',         type: 'string' , value: '{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}'}
    }
  },
  'Categorizzare': { template:'Categorizzare',
    string:'Categorizzare',
    where:'bottom',
    noinclude: false,
    subst: false,
    parameters: {
            argomento: {name: 'Argomento',   type: 'select', value: templateArguments_Categorizzare},
            commento:  {name: 'Commento',    type: 'string'}
    }
  },
  'Spostare': { template:'Spostare',
    string:'Spostare',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            voce:   {name: 'Nome voce',   type: 'string'},
            motivo: {name: 'Motivo', type: 'string'}
    }
  },
  'Correggere': { template:'Correggere',
    string:'Correggere',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            argomento:  {name: 'Argomento',   type: 'select', value: templateArguments_Correggere},
            argomento2: {name: 'Argomento2',  type: 'select', value: templateArguments_Correggere},
            commento:   {name: 'Commento',    type: 'string'},
            mese:       {name: 'Mese',        type: 'string' , value: '{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}'}
    }
  },
  'In corso': { template:'In corso',
    string:'In corso',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            "1": {name: 'Argomento', type: 'select', value: templateArguments_InCorso}
    }
  },
  'Da aggiornare': { template:'Da aggiornare',
    string:'Da aggiornare',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            argomento:  {name: 'Argomento',   type: 'select', value: templateArguments_DaAggiornare},
            argomento2: {name: 'Argomento2',  type: 'select', value: templateArguments_DaAggiornare},
            commento:   {name: 'Commento',    type: 'string'},
            mese:       {name: 'Mese',        type: 'string' , value: '{{subst:CURRENTMONTHNAME}}'},
            anno:       {name: 'Anno',        type: 'string' , value: '{{subst:CURRENTYEAR}}'}
    }
  },
  'Cancelcopy': { template:'Cancelcopy',
    string:'Cancelcopy',
    where:'top',
    noinclude: true,
    subst: false,
    parameters: {
            fonte: {name: 'Fonte', type: 'string'}
    }
  },
  'Controlcopy': { template:'Controlcopy',
    string:'Controlcopy',
    where:'top',
    noinclude: true,
    subst: false,
    parameters: {
            argomento: {name: 'argomento', type: 'select', value: templateArguments_Controlcopy},
            motivo:    {name: 'motivo',    type: 'string'},
            data:      {name: 'Data',      type: 'string' , value: '{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}'}
    }
  },
  'ViolazioneCopyright': { template:'ViolazioneCopyright',
    string:'ViolazioneCopyright',
    where:'top',
    noinclude: true,
    subst: false,
    parameters: {
            url: {name: 'url', type: 'string'}
    }
  },
  'Cancellazione': { template:'Cancellazione',
    string:'Cancellazione',
    where:'top',
    noinclude: true,
    subst: false,
    parameters: {
            arg:  {name: 'arg',   type: 'select', value: templateArguments_Cancellazione},
            arg2: {name: 'arg2',  type: 'select', value: templateArguments_Cancellazione}
    }
  },
  'Cancella subito': { template:'Cancella subito',
    string:'Cancella subito',
    where:'top',
    noinclude: true,
    subst: false,
    parameters: {
            motivo:      {name: 'motivo',       type: 'select', value: templateArguments_CancellaSubito},
            altroMotivo: {name: 'Altro motivo', type: 'string'}
    }
  },
  'Protetta': { template:'Protetta',
    string:'Protetta',
    where:'top',
    noinclude: true,
    subst: false
  },
  'Trasferimento': { template:'Trasferimento',
    string:'Trasferimento',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            "1": {name: 'codiceProgetto', type: 'string'}
    }
  },
  'Nota disambigua': { template:'Nota disambigua',
    string:'Nota disambigua',
    where:'top',
    noinclude: false,
    subst: false,
    parameters: {
            descrizione: {name: 'descrizione', type: 'string' },
            titolo:      {name: 'titolo',      type: 'string' },
            redirect:    {name: 'redirect',    type: 'string' }
    }
  }
};

// ####################################################################################################################
// ####################################################################################################################

// Add options in the "Tag" form

function lrcRunInsertTemplate(data){
    var TagSelect = document.getElementById('LiveTagReason');
    jQuery.each(lstMyTemplate, function(i, val) {
        var optTag = document.createElement('option');
        optTag.value = i;
        optTag.className = "InserisciTemplateExtension";
        optTag.innerHTML = val.string;
        TagSelect.appendChild(optTag);
    });
    // setup dialog
    mw.loader.using(['jquery.ui'], function () {
        $('<div>')
            .attr('id', 'gtb-dialog')
            .appendTo('body');
    });
}
LiveRC_AddHook("AfterPreviewArticle", lrcRunInsertTemplate); 

// Function launched when choosing one of this extension options
 
getLiveTagFunctions["InserisciTemplateExtension"] = function(page, option){
  lrcDisableLink("LiveTagReason");
  lrcDisableLink("LiveTagLink");
  var message = lstMyTemplate[option.value];
  wpajax.http({ url: mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml'
                     + '&action=query&prop=info&intoken=edit'
                     + '&inprop=protection'
                     + '&titles=' + encodeURIComponent(page),
                onSuccess: InserisciTemplate_PostTagPage,
                page: page,
                message: message});
  return false;
}
 
// Get page edit token and protection status
 
function InserisciTemplate_PostTagPage(xmlreq, data){
  var page = data.page;
  var message = data.message; 
  ObjetXML = xmlreq.responseXML;
  var Isprotected = false;
  var PR = ObjetXML.getElementsByTagName("pr");
  for(var a=0,l=PR.length;a<l;a++){
    var Type = PR[a].getAttribute("type");
    var Level = PR[a].getAttribute("level");
    if(Type=="edit" && wgUserGroups.indexOf(Level)==-1) Isprotected = true;
  }
  if(Isprotected){
    LiveRC_alert("<b>"+lrcMakeText("PROTECTEDPAGE").split("$1").join(page)+"</b>");
    return;
  }
  var Page = ObjetXML.getElementsByTagName("page")[0];
  LiveRC_Config["edittoken"] = Page.getAttribute("edittoken");  
  // show dialog
  var tpl = InserisciTemplate_showDialog(message, page);
}

// Show the dialog in order to ask for the template parameters.

function InserisciTemplate_showDialog(data, page) {
    var $dialog, $fieldset;
    // create the dialog html
    $dialog = $('#gtb-dialog').html(lrcMakeText("IT_InsertTemplate1"));
    $('<a>')
        .attr('href', wgArticlePath.split("$1").join(lrcGetNamespaceName(10)) + data.template)
        .attr('target', '_blank')
        .attr('tabindex', '-1')
        .css('color', '#2e45ad')
        .text(data.template)
        .appendTo($dialog);
    $dialog.append(lrcMakeText("IT_InsertTemplate2"));
    $fieldset = $('<fieldset>').css('border-color', 'gray').appendTo($dialog);
    $('<legend>').text(lrcMakeText('IT_InsertTemplateParams')).appendTo($fieldset);
    $.each(data.parameters, function (id, val) {
        var inputEl = InserisciTemplate_buildInputEl(id, val);
        $('<label>')
            .attr('for', id)
            .text(inputEl.label + ':')
            .appendTo($fieldset);
        $fieldset
            .append('<br/>')
            .append(inputEl.el)
            .append('<br/>');
    });
    // show the dialog
    var Buttons = new Object();
    var OKText = lrcMakeText('OK');
    var CancelText = lrcMakeText('Cancel');
    Buttons[OKText] = function () {
                var params = {};
                $dialog.find('input:text,select').each(function () {
                    params[$(this).attr('id')] = $.trim($(this).val());
                });
                text = InserisciTemplate_dumpTemplate(data, params);
                $(this).dialog('close');
                InserisciTemplate_postTemplate(data, text, page);
            };
    Buttons[CancelText] = function () {
                $(this).dialog('close');
            };
    $dialog.dialog({
        title: lrcMakeIcon("LogoIcon") + '&nbsp;' + data.string,
        width: 500,
        resizable: false,
        modal: true,
        zIndex: 10000,
        buttons: Buttons
    });
}

function InserisciTemplate_buildInputEl(id, data) {
    var label, inputEl;
    if (data.type == 'string') {
        label = data.name;
        inputEl = $('<input/>')
            .attr('id', id)
            .attr('type', 'text')
            .attr('size', 50)
            .attr('value', (data.value || ''));
    } else if (data.type == 'select') {
        label = data.name;
        inputEl = $('<select>')
            .attr('id', id)
            .css('width', '200px');
        $.each(data.value, function (i, option) {
            $('<option>')
                .html(option)
                .appendTo(inputEl);
        });
    }
    return { label: label, el: inputEl };
}

// Check the dialog box and create the wikitext from the template and its params

function InserisciTemplate_dumpTemplate(template, params) {
    var text, templateParams = "";
    templateParams = LiveRC_FormatTemplateParams(params || {});
    text = (template.noinclude ? '<noinclude>' : '') +
           '{{' + (template.subst ? 'subst:' : '') +
           template.template + '|' +
           (templateParams) + 
           '}}' +
           (template.noinclude ? '</noinclude>' : '') + '\n';
    return text;
}

function LiveRC_FormatTemplateParams(params) {
    var text = new Array();
    for(var arg in params){
        if(params.hasOwnProperty(arg)) text.push(arg+"="+params[arg]);
    }
    return text.join("|");
}

// Save the edit 

function InserisciTemplate_postTemplate (data, text, page){
  lrcDisableLink("LiveTagReason");
  lrcDisableLink("LiveTagLink");
  var EditParam = new Array();
  EditParam["token"] = LiveRC_Config["edittoken"];
  if (data.where == 'top')
    EditParam["prependtext"] = text+"\n";
  else if (data.where == 'bottom')
    EditParam["appendtext"] = "\n"+text;
  else //default = top
    EditParam["prependtext"] = text+"\n";
  EditParam["summary"] = lrcMakeText("RESUMESTART") + lrcMakeText("TAG_RESUME") + ' ' + data.template;
  EditParam["title"] = page;
  EditParam["watchlist"] = "preferences";
  EditParam["notminor"] = "1";
  EditParam["nocreate"] = "1";
  if(lrcMakeParam("BypassWatchdefault")) EditParam["watchlist"] = "nochange"; 
  var Params = new Array();
  for(var Param in EditParam){
    Params.push(Param+"="+encodeURIComponent(EditParam[Param]));
  }
  Params = Params.join("&");
  var headers = new Array();
  headers['Content-Type'] = 'application/x-www-form-urlencoded';
   wpajax.http({ url: mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=edit',
                method: "POST", headers: headers,
                data: Params,
                onSuccess: InserisciTemplate_PostTagPageDone,
                params:EditParam,
                where: data.where
  });
}
 
function InserisciTemplate_PostTagPageDone(Req, data){
  var params = data.params;
  var where = data.where;
  var text = "<b>" +params["title"]+ " : " + lrcMakeText("TAG_DONE") + "</b> <small>("+params[(where=='bottom')?"appendtext":"prependtext"]+")</small>";
  LiveRC_alert(text);
}
 
/* ########################################## CONFIGURATION PANEL ################################## */
 

// ===== Create a fieldset in the configuration panel =====

function InserisciTemplate_CreateConfigPanel(){
  var InserisciTemplateUl = LiveRC_ManageParams_CreateNewListMenu("InserisciTemplateLegend", LiveRC_ManageParams_CreateActionButtons()); 
  var Target = InserisciTemplateUl.parentNode;
  var Templates = Custom_lstMyTemplate;
  if(!Templates || lrcGetObjectLength(Templates)==0) Templates = lstMyTemplate;
  for(var temp in Templates){
    if(!Templates.hasOwnProperty(temp)) continue;
    var Template = Templates[temp];    
    var TemplateForm = InserisciTemplate_CreateTemplateConfigPanel(Template);
    Target.appendChild(TemplateForm);
  }
  var NewTemplate = document.createElement('p');
  NewTemplate.id = "InserisciTemplate_AddNeTemplateP";
  var NewTemplateLink = document.createElement('a');
  NewTemplateLink.innerHTML = "(+)";
  NewTemplateLink.title = lrcMakeText("IT_AddTemplate");
  NewTemplateLink.href = "javascript:;";
  NewTemplateLink.onclick = function(){ InserisciTemplate_AddNewTemplate(); };
  NewTemplate.appendChild(NewTemplateLink);
  Target.appendChild(NewTemplate);
  InserisciTemplateUl.parentNode.removeChild(InserisciTemplateUl);
  var ThisFieldset = document.getElementById("LiveRC_OptionsContent_InserisciTemplateLegend");
  var TargetFieldset = document.getElementById("LiveRC_OptionsContent_lstParamMenuTabs");
  if(ThisFieldset && TargetFieldset) TargetFieldset.parentNode.insertBefore(ThisFieldset, TargetFieldset);
}
LiveRC_AddHook("AfterCreateParamPanel", InserisciTemplate_CreateConfigPanel);
 
function InserisciTemplate_AddNewTemplate(){
  var P = document.getElementById("InserisciTemplate_AddNeTemplateP");
  if(!P) return;
  var BlankTemplate = { template:'',
                        string:'',
                        where:'top',
                        noinclude: false,
                        subst: false,
                        parameters: {}
  };
  var NewDiv = InserisciTemplate_CreateTemplateConfigPanel(BlankTemplate);
  P.parentNode.insertBefore(NewDiv, P);
}

function InserisciTemplate_DeleteTemplate(DeleteLink){
  var Div = DeleteLink;
  while(Div){
    if(hasClass(Div, "InserisciTemplate_TemplateDiv")) break;
    Div = Div.parentNode;
  }
  if(!Div) return;
  Div.parentNode.removeChild(Div);
}

function InserisciTemplate_CreateTemplateConfigPanel(Template){
  var TemplateDiv = document.createElement('div');
  TemplateDiv.className = "InserisciTemplate_TemplateDiv ParamMenuLi";
  var Legend = document.createElement('p');
  var Title = document.createElement('a')
  Title.className = "InserisciTemplate_template";
  Title.innerHTML = "{{"+Template.template+"}} ";
  Title.target = "_blank";
  Title.href = lrcGetPageURL(lrcGetNamespaceName(10)+":"+Template.template);
  Title.title = lrcGetNamespaceName(10)+":"+Template.template;
  Title.onclick = function(){ liveArticle(lrcGetNamespaceName(10)+":"+Template.template); return false; };
  Legend.appendChild(Title);
  var DeleteTemplateLink = document.createElement('a');
  DeleteTemplateLink.innerHTML = "(-)";
  DeleteTemplateLink.title = lrcMakeText("IT_DeleteTemplate");
  DeleteTemplateLink.href = "javascript:;";
  DeleteTemplateLink.onclick = function(){ InserisciTemplate_DeleteTemplate(this); };
  Legend.appendChild(DeleteTemplateLink);
  TemplateDiv.appendChild(Legend);
  var TemplateForm = document.createElement('form');
  TemplateForm.className = "InserisciTemplate_TemplateForm";
  TemplateDiv.appendChild(TemplateForm);
  var UL = document.createElement('ul');
  TemplateForm.appendChild(UL);

  var LI_Template = document.createElement('li');
  UL.appendChild(LI_Template);

// 'template':   name of the template to be inserted 
  var Label_template = document.createElement('label');
  Label_template.setAttribute('for', 'template');
  Label_template.innerHTML = "template : ";
  LI_Template.appendChild(Label_template);
  var Input_template = document.createElement('input');
  Input_template.id = 'template';
  Input_template.type = "text";
  Input_template.value = (Template.template || "");
  LI_Template.appendChild(Input_template);
  LI_Template.appendChild(document.createTextNode(" - "));

// 'string':     option label in the template combo box
  var Label_string = document.createElement('label');
  Label_string.setAttribute('for', 'string');
  Label_string.innerHTML = "string : ";
  LI_Template.appendChild(Label_string);
  var Input_string = document.createElement('input');
  Input_string.id = 'string';
  Input_string.type = "text";
  Input_string.value = (Template.string || "");
  LI_Template.appendChild(Input_string);
  LI_Template.appendChild(document.createTextNode(" - "));

// 'where':      where to insert the template in the page (top or bottom)
  var Label_where = document.createElement('label');
  Label_where.setAttribute('for', 'where');
  Label_where.innerHTML = "where : ";
  LI_Template.appendChild(Label_where);
  var Select_where = document.createElement('select');
  Select_where.id = 'where';
  var Opts = ["top", "bottom"];
  for(var a=0,l=Opts.length;a<l;a++){
    var OptValue = Opts[a];
    var Opt = document.createElement('option');
    Opt.innerHTML = OptValue;
    Opt.value = OptValue;
    if(OptValue == Template.where) Opt.selected = "selected";
    Select_where.appendChild(Opt);
  }
  LI_Template.appendChild(Select_where);
  LI_Template.appendChild(document.createTextNode(" - "));

// 'noinclude':  whether the template shall be tagged with "noinclude"
  var Label_noinclude = document.createElement('label');
  Label_noinclude.setAttribute('for', 'noinclude');
  Label_noinclude.innerHTML = "noinclude : ";
  LI_Template.appendChild(Label_noinclude);
  var Input_noinclude = document.createElement('input');
  Input_noinclude.id = 'noinclude';
  Input_noinclude.type = "checkbox";
  if(Template.noinclude) Input_noinclude.checked = "checked";
  LI_Template.appendChild(Input_noinclude);
  LI_Template.appendChild(document.createTextNode(" - "));

// 'subst':      whether the template shall be "substed"
  var Label_subst = document.createElement('label');
  Label_subst.setAttribute('for', 'subst');
  Label_subst.innerHTML = "subst : ";
  LI_Template.appendChild(Label_subst);
  var Input_subst = document.createElement('input');
  Input_subst.id = 'subst';
  Input_subst.type = "checkbox";
  if(Template.subst) Input_subst.checked = "checked";
  LI_Template.appendChild(Input_subst);

// 'parameters'
  var LI_parameters = document.createElement('li');
  UL.appendChild(LI_parameters);
  var Label_parameters = document.createElement('label');
  Label_parameters.setAttribute('for', 'parameters');
  Label_parameters.innerHTML = "parameters : ";
  LI_parameters.appendChild(Label_parameters);
  var ParamsUL = document.createElement('ul');
  ParamsUL.id = 'parameters';
  LI_parameters.appendChild(ParamsUL);
  for(var param in Template.parameters){
    if(!Template.parameters.hasOwnProperty(param)) continue;
    var LI_Param = InserisciTemplate_CreateNewParam(param, Template.parameters[param]);
    ParamsUL.appendChild(LI_Param);
  }
  var Li_NewParam = document.createElement('li');
  var Link_NewParam = document.createElement('a');
  Link_NewParam.innerHTML = "(+)";
  Link_NewParam.title = lrcMakeText("IT_AddParam");
  Link_NewParam.href = "javascript:;";
  Link_NewParam.onclick = function(){ InserisciTemplate_AddParamToTemplate(this); };
  Li_NewParam.appendChild(Link_NewParam);
  ParamsUL.appendChild(Li_NewParam);
  return TemplateDiv;
}

function InserisciTemplate_AddParamToTemplate(AddParamLink){
  var Li = AddParamLink.parentNode;
  var NewParams = {name: '', type: 'string', value: ''};
  var NewParamLi = InserisciTemplate_CreateNewParam("", NewParams);
  Li.parentNode.insertBefore(NewParamLi, Li);
}

function InserisciTemplate_CreateNewParam(param, Params){
  var ParamName = Params.name;
  var ParamType = Params.type;
  var ParamValue = Params.value;
  var LI_Param = document.createElement('li');
  LI_Param.className = "LI_parameters_li";

  var DeleteParamLink = document.createElement('a');
  DeleteParamLink.innerHTML = "(-)";
  DeleteParamLink.title = lrcMakeText("IT_DeleteParam");
  DeleteParamLink.href = "javascript:;";
  DeleteParamLink.onclick = function(){ InserisciTemplate_DeleteParamFromTemplate(this); }; 
  LI_Param.appendChild(DeleteParamLink);
  LI_Param.appendChild(document.createTextNode(" - "));

//// parameters id
  var Label_id = document.createElement('label');
  Label_id.setAttribute('for', 'Param_id');
  Label_id.innerHTML = "id : ";
  LI_Param.appendChild(Label_id);
  var Input_id = document.createElement('input');
  Input_id.id = 'Param_id';
  Input_id.type = "text";
  Input_id.value = (param || "");
  LI_Param.appendChild(Input_id);
  LI_Param.appendChild(document.createTextNode(" - "));

//// parameters.name
  var Label_name = document.createElement('label');
  Label_name.setAttribute('for', 'Param_name');
  Label_name.innerHTML = "name : ";
  LI_Param.appendChild(Label_name);
  var Input_name = document.createElement('input');
  Input_name.id = 'Param_name';
  Input_name.type = "text";
  Input_name.value = (ParamName || "");
  LI_Param.appendChild(Input_name);
  LI_Param.appendChild(document.createTextNode(" - "));

//// parameters.type
  var Label_type = document.createElement('label');
  Label_type.setAttribute('for', 'Param_type');
  Label_type.innerHTML = "type : ";
  LI_Param.appendChild(Label_type);
  var Select_type = document.createElement('select');
  Select_type.id = 'Param_type';
  var Opts = ["string", "select"];
  for(var a=0,l=Opts.length;a<l;a++){
    var OptValue = Opts[a];
    var Opt = document.createElement('option');
    Opt.innerHTML = OptValue;
    Opt.value = OptValue;
    if(OptValue == ParamType) Opt.selected = "selected";
    Select_type.appendChild(Opt);
  }
  Select_type.onchange = function(){ InserisciTemplate_ChageValueType(this); }
  LI_Param.appendChild(Select_type);
  LI_Param.appendChild(document.createTextNode(" - "));

//// parameters.value
  var Label_value = document.createElement('label');
  Label_value.setAttribute('for', 'Param_value');
  Label_value.innerHTML = "value : ";
  LI_Param.appendChild(Label_value);
  if(ParamType == "string"){
    var Input_value = document.createElement('input');
    Input_value.id = 'Param_value';
    Input_value.type = "text";
    Input_value.size = "30";
    Input_value.value = (ParamValue || "");
    LI_Param.appendChild(Input_value);
  }else if(ParamType == "select"){
    var Select_value = document.createElement('select');
    Select_value.id = 'Param_value';
    Select_value.style.width = '206px';
    var Opts = ParamValue;
    for(var a=0,l=Opts.length;a<l;a++){
      var OptValue = Opts[a];
      var Opt = document.createElement('option');
      Opt.innerHTML = OptValue;
      Opt.value = OptValue;
      Select_value.appendChild(Opt);
    }
    LI_Param.appendChild(Select_value);
    LI_Param.appendChild(document.createTextNode(" "));
    var DeleteOptionLink = document.createElement('a');
    DeleteOptionLink.innerHTML = "(-)";
    DeleteOptionLink.title = lrcMakeText("IT_DeleteOption");
    DeleteOptionLink.href = "javascript:;";
    DeleteOptionLink.onclick = function(){ InserisciTemplate_DeleteOptionFromSelect(this); };
    LI_Param.appendChild(DeleteOptionLink);
    LI_Param.appendChild(document.createTextNode(" "));

    var AddOptionLink = document.createElement('a');
    AddOptionLink.innerHTML = "(+)";
    AddOptionLink.title = lrcMakeText("IT_AddOption");
    AddOptionLink.href = "javascript:;";
    AddOptionLink.onclick = function(){ InserisciTemplate_AddOptionToSelect(this); };
    LI_Param.appendChild(AddOptionLink);
  }
  return LI_Param;
}

function InserisciTemplate_ChageValueType(Select){
  var NewType = Select.value;
  var Li = Select.parentNode;
  var Labels = Li.getElementsByTagName('label');
  var LastLabel = Labels[(Labels.length-1)];
  while(LastLabel.nextSibling){ LastLabel.nextSibling.parentNode.removeChild(LastLabel.nextSibling); }
  if(NewType == "string"){
    var Input_value = document.createElement('input');
    Input_value.id = 'Param_value';
    Input_value.type = "text";
    Input_value.size = "30";
    Input_value.value = "";
    LastLabel.parentNode.appendChild(Input_value);
  }else{
    var Select_value = document.createElement('select');
    Select_value.id = 'Param_value';
    Select_value.style.width = '206px';
    var Opt = document.createElement('option');
    Opt.innerHTML = "";
    Opt.value = "";
    Select_value.appendChild(Opt);
    LastLabel.parentNode.appendChild(Select_value);
    LastLabel.parentNode.appendChild(document.createTextNode(" "));
    var DeleteOptionLink = document.createElement('a');
    DeleteOptionLink.innerHTML = "(-)";
    DeleteOptionLink.title = lrcMakeText("IT_DeleteOption");
    DeleteOptionLink.href = "javascript:;";
    DeleteOptionLink.onclick = function(){ InserisciTemplate_DeleteOptionFromSelect(this); };
    LastLabel.parentNode.appendChild(DeleteOptionLink);
    LastLabel.parentNode.appendChild(document.createTextNode(" "));
    var AddOptionLink = document.createElement('a');
    AddOptionLink.innerHTML = "(+)";
    AddOptionLink.title = lrcMakeText("IT_AddOption");
    AddOptionLink.href = "javascript:;";
    AddOptionLink.onclick = function(){ InserisciTemplate_AddOptionToSelect(this); };
    LastLabel.parentNode.appendChild(AddOptionLink);
  }
}

function InserisciTemplate_DeleteOptionFromSelect(DeleteOptionLink){
  var Li = DeleteOptionLink.parentNode;
  var Selects = Li.getElementsByTagName('select');
  for(var a=0,l=Selects.length;a<l;a++){
    var Select = Selects[a];
    if(!Select.id || Select.id != 'Param_value') continue;
    var SelectedOpt = Select.value;
    var Options = Select.getElementsByTagName('option');
    for(var b=0,m=Options.length;b<m;b++){
      var thisOpt = Options[b];
      if(thisOpt.value != SelectedOpt) continue;
      thisOpt.parentNode.removeChild(thisOpt);
    }
  }
}

function InserisciTemplate_AddOptionToSelect(AddOptionLink){
  var AddOptionForm = document.createElement('span');
  var AddOptionInput = document.createElement('input');
  AddOptionInput.type = 'text';
  AddOptionForm.appendChild(AddOptionInput);
  var AddOptionInputOK = document.createElement('input');
  AddOptionInputOK.type = 'button';
  AddOptionInputOK.value = lrcMakeText("OK");
  AddOptionInputOK.onclick = function(){ InserisciTemplate_AddOptionToSelect_OK(this); };
  AddOptionInputOK.onselect = function(){ InserisciTemplate_AddOptionToSelect_OK(this); };
  AddOptionForm.appendChild(AddOptionInputOK);
  var AddOptionInputCancel = document.createElement('input');
  AddOptionInputCancel.type = 'button';
  AddOptionInputCancel.value = lrcMakeText("Cancel");
  AddOptionInputCancel.onclick = function(){ InserisciTemplate_AddOptionToSelect_Cancel(this); };
  AddOptionInputCancel.onselect = function(){ InserisciTemplate_AddOptionToSelect_Cancel(this); };
  AddOptionForm.appendChild(AddOptionInputCancel);
  AddOptionLink.parentNode.insertBefore(AddOptionForm, AddOptionLink);
  AddOptionLink.style.display = "none";
}

function InserisciTemplate_AddOptionToSelect_Cancel(AddOptionInputCancel){
  var Span = AddOptionInputCancel.parentNode;
  var Link = Span.nextSibling;
  Span.parentNode.removeChild(Span);
  Link.style.display = "";
}

function InserisciTemplate_AddOptionToSelect_OK(AddOptionInputOK){
  var Input = AddOptionInputOK.previousSibling;
  var NewOption = Input.value;
  var Li = AddOptionInputOK.parentNode.parentNode;
  var Selects = Li.getElementsByTagName('select');
  for(var a=0,l=Selects.length;a<l;a++){
    var Select = Selects[a];
    if(!Select.id || Select.id != 'Param_value') continue;
    var Option = document.createElement('option');
    Option.innerHTML = NewOption;
    Option.value = NewOption;
    Select.appendChild(Option);
  }
  InserisciTemplate_AddOptionToSelect_Cancel(AddOptionInputOK)
}

function InserisciTemplate_DeleteParamFromTemplate(DeleteParamLink){
  var Li = DeleteParamLink.parentNode;
  Li.parentNode.removeChild(Li);
}

// ===== Check the fieldset and add a text to be saved in /LiveRCparam.js page =====

function InserisciTemplate_CheckConfigPanel(){ 
  var ITConfigPanel = document.getElementById('LiveRC_OptionsContent_InserisciTemplateLegend');
  if(!ITConfigPanel) return;
  var ElementForms = getElementsByClass("InserisciTemplate_TemplateForm", ITConfigPanel, "form");
  var Items = new Object();
  for(var a=0,l=ElementForms.length;a<l;a++){
    var ThisForm = ElementForms[a];
    var NewItem = new Object();
    NewItem.template = getElementWithId('template', 'input', ThisForm).value;
    NewItem.string = getElementWithId('string', 'input', ThisForm).value;
    NewItem.where = getElementWithId('where', 'select', ThisForm).value;
    NewItem.noinclude = (getElementWithId('noinclude', 'input', ThisForm).checked ? true : false );
    NewItem.subst = (getElementWithId('subst', 'input', ThisForm).checked ? true : false );
    NewItem.parameters = new Object();
    var ParamLIs = getElementsByClass("LI_parameters_li", ThisForm, "li");
    for(var b=0,m=ParamLIs.length;b<m;b++){
      var ParamLi = ParamLIs[b];
      var NewParam = new Object();
      var NewParamId = getElementWithId('Param_id', 'input', ParamLi).value;
      NewParam.name = getElementWithId('Param_name', 'input', ParamLi).value;
      NewParam.type = getElementWithId('Param_type', 'select', ParamLi).value;
      if(NewParam.type == "string"){
        NewParam.value = getElementWithId('Param_value', 'input', ParamLi).value.unhtmlize();
        if(!NewParam.value) delete NewParam.value;
      }else{
        NewParam.value = new Array();
        var ParamValueSelect = getElementWithId('Param_value', 'select', ParamLi);
        var Opt = ParamValueSelect.getElementsByTagName('option');
        for(var c=0,k=Opt.length;c<k;c++){
          NewParam.value.push(Opt[c].value.unhtmlize());
        }
      }      
      NewItem.parameters[NewParamId] = NewParam;
    }  
    Items[NewItem.template] = NewItem;
  }
  var TextToSave = InserisciTemplate_CompareNewParams(Items);
  if(!TextToSave) return;
  var SavedText = "\nCustom_lstMyTemplate = {\n";
  var SavedItems = new Array();
  for(var item in Items){
    var SavedItem = "  '"+item+"':{\n";
    var ThisTemplate = Items[item];
    for(var tempParam in ThisTemplate){
      SavedItem += "    "+tempParam+" : ";
      var tempParamValue = ThisTemplate[tempParam];
      if(tempParam!="parameters"){
        SavedItem += ( typeof(tempParamValue)=="string" ? lrcEscapeStrHTML(tempParamValue) : tempParamValue ) + ",\n";
      }else{
        SavedItem += "{\n";
        var tempParameters = new Array();
        for(var parameter in tempParamValue){
          var thisparam = tempParamValue[parameter];
          var ParamItems = new Array();
          for(var paramItem in thisparam){
            var thisparamItemValue = thisparam[paramItem];
            if(paramItem!="value" || typeof(thisparamItemValue)=="string"){
              ParamItems.push( paramItem + ":" + lrcEscapeStrHTML(thisparamItemValue) );
            }else{
              var ThisParamValue = new Array();
              for(var a=0,l=thisparamItemValue.length;a<l;a++){
                ThisParamValue.push(lrcEscapeStrHTML(thisparamItemValue[a]));
              }
              ParamItems.push( paramItem +": [" + ThisParamValue.join(",") + "]" );
            }
          }
          tempParameters.push("      " + lrcEscapeStrHTML(parameter) + " : {" + ParamItems.join(",") + "}");
        }
        SavedItem += tempParameters.join(",\n");
        SavedItem += "\n    }";        
      }
    }
    SavedItem += "\n  }";
    SavedItems.push(SavedItem);
  }
  SavedText += SavedItems.join(",\n");
  SavedText += "};\n\n";
  LiveRC_Config["BeforeParamPanelSavedHookResult"] += SavedText;
} 
LiveRC_AddHook("BeforeParamPanelSaved", InserisciTemplate_CheckConfigPanel);

function InserisciTemplate_CompareNewParams(NewItems){
  var OldItems = lstMyTemplate;
  for(var template in OldItems){
    if(typeof(NewItems[template])==="undefined") return true;
    for(var item in OldItems[template]){
      if(item != "parameters"){
        if(OldItems[template][item] !== NewItems[template][item]) return true;
      }else{
        if(lrcGetObjectLength(OldItems[template][item]) != lrcGetObjectLength(NewItems[template][item])) return true;
        for(var param in OldItems[template][item]){
          if(!NewItems[template][item][param]) return true;
          for(var paramitem in OldItems[template][item][param]){
            if(paramitem != "value" || (typeof(OldItems[template][item][param][paramitem]) != "object" && typeof(NewItems[template][item][param][paramitem]) != "object")){
              if(OldItems[template][item][param][paramitem] !== NewItems[template][item][param][paramitem]) return true;
            }else{
              if(OldItems[template][item][param][paramitem].length != NewItems[template][item][param][paramitem].length) return true;
              for(var a=0, l=OldItems[template][item][param][paramitem].length;a<l;a++){
                if(OldItems[template][item][param][paramitem][a] != NewItems[template][item][param][paramitem][a]) return true;
              }
            }
          }
        }
      }
    }
  }
  for(var template in NewItems){
    if(typeof(OldItems[template])==="undefined") return true;
  }
  return false;
}

// ===== Vars for configuration panel fieldset =====

// Texts

try{
  lrcTexts["IT_InsertTemplate1"]      = "Inserisce il template {{";
  lrcTexts["IT_InsertTemplate2"]      = "}} nella pagina.";
  lrcTexts["IT_InsertTemplateParams"] = "Parametri";
  lrcTexts["IT_AddTemplate"]     = "Aggiungi un nuovo template";
  lrcTexts["IT_DeleteTemplate"]  = "Cancella questo template";
  lrcTexts["IT_AddParam"]        = "Aggiungi un nuovo parametro";
  lrcTexts["IT_DeleteParam"]     = "Cancella questo parametro";
  lrcTexts["IT_DeleteOption"]    = "Cancella l'opzione selezionata";
  lrcTexts["IT_AddOption"]       = "Aggiungi una nuova opzione";
}catch(e){ }


// Descriptions
try{
  lrcParamDesc["DescIT_InsertTemplate1"]      = "[InserisciTemplate] Inserisci la parte 1 della frase del template";
  lrcParamDesc["DescIT_InsertTemplate2"]      = "[InserisciTemplate] Inserisci la parte 2 della frase del template";
  lrcParamDesc["DescIT_InsertTemplateParams"] = "[InserisciTemplate] Parametri";

  lrcParamDesc["DescIT_AddTemplate"]     = "[InserisciTemplate] Frase Aggiungi un nuovo template";
  lrcParamDesc["DescIT_DeleteTemplate"]  = "[InserisciTemplate] Frase Cancella questo template";
  lrcParamDesc["DescIT_AddParam"]        = "[InserisciTemplate] Frase Aggiungi un nuovo parametro";
  lrcParamDesc["DescIT_DeleteParam"]     = "[InserisciTemplate] Frase Cancella questo parametro";
  lrcParamDesc["DescIT_DeleteOption"]    = "[InserisciTemplate] Frase Cancella l'opzione selezionata";
  lrcParamDesc["DescIT_AddOption"]       = "[InserisciTemplate] Frase Aggiungi una nuova opzione";
  lrcParamDesc["DescInserisciTemplateLegend"]       = "Parametri per l'estensione InserisciTemplate";
  lrcParamDesc["DescInserisciTemplateLegend_short"] = "InserisciTemplate";
}catch(e){ }

// Hide/Show tabs panel item
addParamMenuTab("InserisciTemplateLegend", true);

/* ************************************************************************************************************************************************ */
} // FIN IF
//</source>