Oharra: Gorde ondoren zure nabigatzailearen katxea ekidin beharko duzu aldaketak ikusteko. Mozilla / Firefox / Safari: Shift tekla sakatu birkargatzeko momentuan, edo Ctrl-Shift-R sakatu (Cmd-Shift-R Apple Mac baten); IE: Ctrl tekla sakatu birkargatzeko momentuan, edo Ctrl-F5 sakatu; Konqueror:: Birkargatzeko klik egin, edo F5 sakatu, besterik ez; Opera erabiltzaileek Tresnak-Hobespenak atalera jo eta katxea garbitzeko aukera hautatu.

//  _________________________________________________________________________________________
// |                                                                                         |
// |                                     === Oharrak ===                                     |
// | * Baliteke gehigarri honek ondo ez funtzionatzea, erabiltzen baduzu erabakia zeurea da. |
// | * Kode honen jatorria [[:en:User:Apoc2400/refToolbar.js]]n aurkitzen da. Era berean,    |
// | [[:en:MediaWiki:Gadget-refToolbar.js]]koaren bertsioa da aurrekoa. Hau euskarazko       |
// | Wikipediara moldatutako bertsio bat da.                                                 |
// | * Bertsio honetan [[Txantiloi:Erreferentzia]], [[Txantiloi:Erref behar]],               |
// | [[Txantiloi:Erreferentzia falta]] eta [[Txantiloi:Erreferentzia zerrenda]]rekin lan     |
// | egiteko beharrezko moldaketa eta itzulpenak bakarrik egin dira. Ez da inolako           |
// | berrikuntzarik sartu.                                                                   |
// | * Erabili [[Wikipedia_eztabaida:RefToolbar]] eztabaida orria arazoak konpontzeko.       |
// | Eskaerak ere egin ditzakezu baina [[Lankide:Inorbez]]ek neurri batean bakarrik lagundu  |
// | zaitzake ez baitu JavaScript ezagutzen. Agian beste norbaitek.                          |
// |_________________________________________________________________________________________|
//
// [[Lankide:Inorbez]], 2010eko otsailaren 18an eguneratua
 
var numforms = 0;
var wikEdAutoUpdateUrl;
function refbuttons() {
  if (mwCustomEditButtons && document.getElementById('toolbar') ) {
    button = document.createElement('a');
    button.href = "javascript:easyCiteMain()";
    button.title = "Erreferentzia gehitu";
    buttonimage = document.createElement('img');
    buttonimage.src = "http://upload.wikimedia.org/wikipedia/commons/8/8b/Erreferentzia_txantiloi_botoia.png";
    buttonimage.alt = "Erreferentzia gehitu";
    button.appendChild(buttonimage);
    var toolbar = document.getElementById('toolbar');
    if (navigator.userAgent.indexOf('MSIE') == -1) {
      if (toolbar.style != null) {
        toolbar.style.height = 'auto';
      }
      else {
      	toolbar.setAttribute('style', 'margin-bottom: 6px; height: auto;');
      }
      toolbar.appendChild(button);
      citemain = document.createElement('div');
      citemain.style.display = 'none';
      citemain.style.margin = '0.2em 0 -0.2em 0';
      citemain.setAttribute('Id', 'citeselect');
      citemain.appendChild( addOption("errefLiburua()", "Liburua") );
      citemain.appendChild( addOption("errefAldizkakoa()", "Aldizkakoa") );
      citemain.appendChild( addOption("errefWebgunea()", "Webgunea") );
      citemain.appendChild( addOption("errefPatentea()", "Patentea") );
      citemain.appendChild( addOption("citeNamedRef()", "Izendun erreferentziak") );
      citemain.appendChild( addOption("dispErrors()", "Erroreak bilatu") );
      citemain.appendChild( addOption("errefBehar()", "Erref. behar") );
      citemain.appendChild( addOption("errefFalta()", "Erreferentzia falta") );
      citemain.appendChild( addOption("errefZerrenda()", "Zerrenda") );
      citemain.appendChild( addOption("hideInitial()", "Utzi") );
      toolbar.appendChild(citemain);
    }
    else {
      toolbar.appendChild(button);
      selection = '<div id="citeselect" style="display:none"><input type="button" value="Liburua" onclick="errefLiburua()" />'+
      '<input type="button" value="Aldizkakoa" onclick="errefAldizkakoa()" />'+
      '<input type="button" value="Webgunea" onclick="errefWebgunea()" />'+
      '<input type="button" value="Patentea" onclick="errefPatentea()" />'+
      '<input type="button" value="Izendun erreferentziak" onclick="citeNamedRef()" />'+
      '<input type="button" value="Erroreak bilatu" onclick="dispErrors()" />'+
      '<input type="button" value="Erref. behar" onclick="errefBehar()" />'+
      '<input type="button" value="Erreferentzia falta" onclick="errefFalta()" />'+
      '<input type="button" value="Zerrenda" onclick="errefZerrenda()" />'+
      '<input type="button" value="Utzi" onclick="hideInitial()" /></div>';
      document.getElementById('editform').innerHTML = selection + document.getElementById('editform').innerHTML;
    }
  }
}
 
function addOption(script, text) {
  option = document.createElement('input');
  option.setAttribute('type', 'button');
  option.setAttribute('onclick', script);
  option.setAttribute("value", text);
  return option;
}
 
function hideInitial() {
  document.getElementById('citeselect').style.display = 'none';
  oldFormHide();
}
 
function oldFormHide() {
  if (numforms != 0) {
    document.getElementById('citediv'+numforms).style.display = 'none';
  }
  if (document.getElementById('errorform') != null) {
    document.getElementById('citeselect').removeChild(document.getElementById('errorform'));
  }
}
 
function easyCiteMain() {
  document.getElementById('citeselect').style.display = '';
}
 
var citeGlobalDateFormat = "<year>-<zmonth>-<zdate>"; // data ISO edo euskarazko formatuan agertuko da, ad. 2010-02-14
function getTime() {
  var datestr = citeGlobalDateFormat;
  var DT = new Date();
  var zmonth = '';
  var month = DT.getUTCMonth()+1;
  if (month < 10) {
    zmonth = "0"+month.toString();
  } else {
    zmonth = month.toString();
  }
  month = month.toString();
  var zdate = '';
  var date = DT.getUTCDate()
  if (date < 10) {
    zdate = "0"+date.toString();
  } else {
    zdate = date.toString();
  }
  date = date.toString()
  datestr = datestr.replace('<date>', date);
  datestr = datestr.replace('<month>', month);
  datestr = datestr.replace('<zdate>', zdate);
  datestr = datestr.replace('<zmonth>', zmonth);
  datestr = datestr.replace('<monthname>', months[DT.getUTCMonth()]);
  datestr = datestr.replace('<year>', DT.getUTCFullYear().toString());
  return (datestr);
}
 
 // Oharra: 'refname' eremua 'abizena'-ren ondoren badoa bakarrik funtzionatzen du, baina beti da horrela
function lastNameToRefname() {
  var lastName;
  var fields = document.getElementById('citediv'+numforms).getElementsByTagName('input');
  for (var i=0; i<fields.length; i++) {
    if(fields[i].id == 'abizena1') {
      lastName = fields[i].value;
    }
    else if(fields[i].id == 'refname') {
      fields[i].value = lastName.replace(/^\s*(.*?)\s*$/, "$1");
      return;
    }
  }
}
 
 // URL-a lortutako data edo "sartze-data" parametroa automatikoki betetzeko 
function setAccessDateToday() {
  var fields = document.getElementById('citediv'+numforms).getElementsByTagName('input');
  for (var i=0; i<fields.length; i++) {
    if(fields[i].id == 'sartze-data') {
      fields[i].value = getTime();
      return;
    }
  }
}
 
 // [[Txantiloi:Erreferentzia]] erabiliz liburu baten erreferentziak erraz jartzeko
function errefLiburua() {
  oldFormHide();
  template = "erreferentzia";
  newtime = getTime();
  numforms++;
  form = '<div id="citediv'+numforms+'">'+
    '<fieldset><legend>Liburua edo bestelako monografikoa</legend>'+
    '<table cellspacing="5">'+
    '<input type="hidden" value="'+template+'" id="template">'+
    '<tr><td width="125"><label for="abizena1">&nbsp;Abizena(k): </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="abizena1"></td>'+
    '<td width="125"><label for="izena1">&nbsp;Izena: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="izena1"></td></tr>'+
    '<tr><td width="125"><label for="abizena2">&nbsp;Abizena(k): </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="abizena2"></td>'+
    '<td width="125"><label for="izena2">&nbsp;Izena: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="izena2"></td></tr>'+
    '<tr><td width="125"><label for="izenburua">&nbsp;Izenburua: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="izenburua"></td>'+
    '<td width="125"><label for="editorea">&nbsp;Editorea: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="editorea"></td></tr>'+
    '<tr><td width="125"><label for="argitaletxea">&nbsp;Argitaletxea: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="argitaletxea"></td>'+
    '<td width="125"><label for="edizioa">&nbsp;Edizioa: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="edizioa"></td></tr>'+
    '<tr><td width="125"><label for="data">&nbsp;Argitaratze data: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="data"></td>'+
    '<td width="125"><label for="lekua">&nbsp;Lekua: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="lekua"></td></tr>'+
    '<tr><td width="125"><label for="bilduma">&nbsp;Bilduma: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="bilduma"></td>'+
    '<td width="125"><label for="liburukia">&nbsp;Liburukia: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="liburukia"></td></tr>'+
    '<tr><td width="125"><label for="orrialdeak">&nbsp;Orrialdea(k): </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="orrialdeak"></td>'+
    '<td width="125"><label for="atala">&nbsp;Atala: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="atala"></td></tr>'+
    '<tr><td width="125"><label for="url">&nbsp;URL-a: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="url"></td>'+
    '<td width="125"><label for="sartze-data">&nbsp;Sartze data: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="sartze-data" value="'+ newtime +'"></td>'+
    '<tr><td width="125"><label for="formatua">&nbsp;Formatua: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="formatua"></td>'+
    '<td width="125"><label for="id">&nbsp;ID: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="id"></td></tr>'+
    '<tr><td width="125"><label for="isbn">&nbsp;<a href="http://eu.wikipedia.org/wiki/International_Standard_Book_Number">ISBN</a>: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="isbn"></td>'+
    '<td width="125"><label for="oclc">&nbsp;<a href="http://eu.wikipedia.org/wiki/Online_Computer_Library_Center">OCLC</a>: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="oclc"></td></tr>'+
    '<tr><td width="125"><label for="hizkuntza">&nbsp;Hizkuntza (<a href="http://eu.wikipedia.org/wiki/ISO_639-1">kodea</a>): </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="hizkuntza"></td>'+
    '<td width="125"><label for="refname">&nbsp;Erref. izena: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:74%" id="refname"><input type="button" value="< Abizena" onClick="lastNameToRefname()"></td></tr>'+
    '</table>'+
    '<input type="button" value="Gehitu erreferentzia" onClick="addcites()">'+
 '</fieldset></div>';
   document.getElementById('citeselect').innerHTML += form;
}
 
 // [[Txantiloi:Erreferentzia]] erabiliz aldizka argitaratzen den zerbaiten erreferentziak erraz jartzeko
function errefAldizkakoa() {
  oldFormHide();
  template = "erreferentzia";
  newtime = getTime();
  numforms++;
  form = '<div id="citediv'+numforms+'">'+
    '<fieldset><legend>Egunkari, aldizkari, kazeta edo bestelako aldizkakoa</legend>'+
    '<table cellspacing="5">'+
    '<input type="hidden" value="'+template+'" id="template">'+
    '<tr><td width="125"><label for="abizena1">&nbsp;Abizena(k): </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="abizena1"></td>'+
    '<td width="125"><label for="izena1">&nbsp;Izena: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="izena1"></td></tr>'+
    '<tr><td width="125"><label for="izenburua">&nbsp;Izenburua: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="izenburua"></td>'+
    '<td width="125"><label for="aldizkakoa">&nbsp;Aldizkakoa: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="aldizkakoa"></td></tr>'+
    '<tr><td width="125"><label for="data">&nbsp;Argitaratze data: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="data"></td>'+
    '<td width="125"><label for="lekua">&nbsp;Lekua: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="lekua"></td></tr>'+
    '<tr><td width="125"><label for="liburukia">&nbsp;Liburukia: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="liburukia"></td>'+
    '<td width="125"><label for="alea">&nbsp;Alea: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="alea"></td></tr>'+
    '<tr><td width="125"><label for="orrialdeak">&nbsp;Orrialdea(k): </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="orrialdeak"></td>'+
    '<td width="125"><label for="hizkuntza">&nbsp;Hizkuntza (<a href="http://eu.wikipedia.org/wiki/ISO_639-1">kodea</a>): </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="hizkuntza"></td></tr>'+
    '<tr><td width="125"><label for="url">&nbsp;URL-a: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="url"></td>'+
    '<td width="125"><label for="sartze-data">&nbsp;Sartze data: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="sartze-data" value="'+ newtime +'"></td>'+
    '<tr><td width="125"><label for="issn">&nbsp;<a href="http://eu.wikipedia.org/wiki/International_Standard_Serial_Number">ISSN</a>: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="issn"></td>'+
    '<td width="125"><label for="oclc">&nbsp;<a href="http://eu.wikipedia.org/wiki/Online_Computer_Library_Center">OCLC</a>: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="oclc"></td></tr>'+
    '<tr><td width="125"><label for="id">&nbsp;ID: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="id"></td>'+
    '<td width="125"><label for="refname">&nbsp;Erref. izena: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:74%" id="refname"><input type="button" value="< Abizena" onClick="lastNameToRefname()"></td></tr>'+
    '</table>'+
    '<input type="button" value="Gehitu erreferentzia" onClick="addcites()">'+
 '</fieldset></div>';
   document.getElementById('citeselect').innerHTML += form;
}
 
 // [[Txantiloi:Erreferentzia]] erabiliz webgune baten erreferentziak erraz jartzeko
function errefWebgunea() {
  oldFormHide();
  template = "erreferentzia";
  newtime = getTime();
  numforms++;
  form = '<div id="citediv'+numforms+'">'+
    '<fieldset><legend>Webgunea</legend>'+
    '<table cellspacing="5">'+
    '<input type="hidden" value="'+template+'" id="template">'+
    '<tr><td width="125"><label for="url">&nbsp;URL-a: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="url"></td>'+
    '<td width="125"><label for="izenburua">&nbsp;Izenburua: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="izenburua"></td></tr>'+
    '<tr><td width="125"><label for="argitaletxea">&nbsp;Argitaletxea: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="argitaletxea"></td>'+
    '<td width="125"><label for="data">&nbsp;Argitaratze data: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="data"></td></tr>'+
    '<tr><td width="125"><label for="formatua">&nbsp;Formatua: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="formatua"></td>'+
    '<td width="125"><label for="sartze-data">&nbsp;Sartze data: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="sartze-data" value="'+ newtime +'"></td>'+
    '<tr><td width="125"><label for="abizena1">&nbsp;Abizena(k): </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="abizena1"></td>'+
    '<td width="125"><label for="izena1">&nbsp;Izena: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="izena1"></td></tr>'+
    '<tr><td width="125"><label for="orrialdeak">&nbsp;Orrialdea(k): </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="orrialdeak"></td>'+
    '<td width="125"><label for="hizkuntza">&nbsp;Hizkuntza (<a href="http://eu.wikipedia.org/wiki/ISO_639-1">kodea</a>): </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="hizkuntza"></td></tr>'+
    '<tr><td width="125"><label for="oclc">&nbsp;<a href="http://eu.wikipedia.org/wiki/Online_Computer_Library_Center">OCLC</a>: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="oclc"></td>'+
    '<td width="125"><label for="doi">&nbsp;<a href="http://eu.wikipedia.org/wiki/Digital_object_identifier">Doi</a>: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="doi"></td></tr>'+
    '<tr><td width="125"><label for="id">&nbsp;ID: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="id"></td>'+
    '<td width="125"><label for="refname">&nbsp;Erref. izena: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:74%" id="refname"><input type="button" value="< Abizena" onClick="lastNameToRefname()"></td></tr>'+
    '</table>'+
    '<input type="button" value="Gehitu erreferentzia" onClick="addcites()">'+
 '</fieldset></div>';
   document.getElementById('citeselect').innerHTML += form;
}
 
 // [[Txantiloi:Erreferentzia]] erabiliz patente baten erreferentziak erraz jartzeko
function errefPatentea() {
  oldFormHide();
  template = "erreferentzia";
  newtime = getTime();
  numforms++;
  form = '<div id="citediv'+numforms+'">'+
    '<fieldset><legend>Patentea</legend>'+
    '<table cellspacing="5">'+
    '<input type="hidden" value="'+template+'" id="template">'+
    '<tr><td width="125"><label for="asmatzaile1-abizena">&nbsp;Abizena(k): </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="asmatzaile1-abizena"></td>'+
    '<td width="125"><label for="asmatzaile1-izena">&nbsp;Izena: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="asmatzaile1-izena"></td></tr>'+
    '<tr><td width="125"><label for="izenburua">&nbsp;Izenburua: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="izenburua"></td>'+
    '<td width="125"><label for="patente-zenbakia">&nbsp;Patente-zenbakia: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="patente-zenbakia"></td></tr>'+
    '<tr><td width="125"><label for="herrialde-kodea">&nbsp;<a href="http://eu.wikipedia.org/wiki/ISO_3166-1_alpha-2">Herrialde-kodea</a>: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="herrialde-kodea"></td>'+
    '<td width="125"><label for="igortze-data">&nbsp;Igortze-data: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:100%" id="igortze-data"></td></tr>'+
    '</table>'+
    '<input type="button" value="Gehitu erreferentzia" onClick="addcites()">'+
 '</fieldset></div>';
   document.getElementById('citeselect').innerHTML += form;
}
 
 // Gorago [[Txantiloi:Erreferentzia]] erabiltzen duten atalek, behin parametroak zehaztuta, txantiloia idazteko
function addcites(template) {
  cites = document.getElementById('citediv'+numforms).getElementsByTagName('input');
  var citebegin = '<ref';
  var citename = '';
  var citeinner = '';
  for (var i=0; i<cites.length-1; i++) {
    var citeid = cites[i].id;
    var citevalue = cites[i].value;
    citevalue = citevalue.replace(/^\s*(.*?)\s*$/, "$1");    //Trim leading and trailing whitespace
    if (citevalue != '' && citevalue != '< Abizena' && citevalue != '< Gaurko data') {
      if (citeid == "refname") {
        citebegin += ' name="' + citevalue + '"';
      }
      else if (citeid == "template") {
        citename = '>{{' + citevalue;
      }
      else {
        if (citeid == "orrialdeak") {
          if (citevalue.match(/^\w+$/)) {
            citeid = "orrialdea"; // orrialdea= erabiltzeko orrialdeak= -en ordez orri bakar baten kasuan
          }
          else {
            citevalue = citevalue.replace(/-/g, "–"); // gidoia jarri marraren ordez
          }
        }
        else if (citeid == "date" && citevalue.match(/^\d\d\d\d$/)) {
          citeid = "year"; // urtea= erabiltzen du data= ordez
        }
        citeinner += " |" + citeid + " = " + citevalue;
      }
    }
  }
  cite = citebegin + citename + citeinner + "}}</ref>";
  insertTags(cite, '', '');
  document.getElementById('citediv'+numforms).style.display = 'none';
}
 
function getNamedRefs(calls) {
  if (typeof(wikEdUseWikEd) != 'undefined') {
    if (wikEdUseWikEd == true) {
      WikEdUpdateTextarea();
    }
  }
  text = document.getElementById('wpTextbox1').value;
  var regex;
  if (calls) {
    regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?\/ *?>/gi //'
  } else {
    regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?>/gi //'
  }
  var namedrefs = new Array();
  var i=0;
  var nr=true;
  do {
    ref = regex.exec(text);
    if(ref != null){
      if (ref[5]) {
        namedrefs[i] = ref[5];
      } else if (ref[3]) {
        namedrefs[i] = ref[3];
      } else {
        namedrefs[i] = ref[6];
      }
      i++;
    } else {
      nr=false;
    }
  } while (nr==true);
  return namedrefs;
}
 
function citeNamedRef() {
  namedrefs = getNamedRefs(false);
  if (namedrefs == '') {
    oldFormHide();
    numforms++;
    out = '<div id="citediv'+numforms+'"><fieldset>'+
      '<legend>Erreferentziak testuan</legend>Ez dago izena duen erreferentziarik (<tt>&lt;ref name="Izena"&gt;</tt>) testuan</fieldset></div>';
    document.getElementById('citeselect').innerHTML += out;
  }
  else {
    oldFormHide();
    numforms++;
    form = '<div id="citediv'+numforms+'">'+
      '<fieldset><legend>Artikuluko erreferentziak</legend>'+
      '<table cellspacing="5">'+
      '<tr><td><label for="namedrefs">&nbsp;Artikuluan zehar erabilitakoak:</label></td>'+
            '<td><select name="namedrefs" id="namedrefs">';
    for (var i=0;i<namedrefs.length;i++) {
      form+= '<option value="'+namedrefs[i]+'">'+namedrefs[i]+'</option>';
    }
    form+= '</select>'+
      '</td></tr></table>'+
      '<input type="button" value="Gehitu erreferentzia" onClick="addnamedcite()">'+
      '</fieldset></div>';
     document.getElementById('citeselect').innerHTML += form;
  }
}
 
function addnamedcite() {
  name = document.getElementById('citediv'+numforms).getElementsByTagName('select')[0].value;
  ref = '<ref name="'+name+'" />';
  insertTags(ref, '', '');
  document.getElementById('citediv'+numforms).style.display = 'none';
}
 
function getAllRefs() {
  if (typeof(wikEdUseWikEd) != 'undefined') {
    if (wikEdUseWikEd == true) {
      WikEdUpdateTextarea();
    }
  }
  text = document.getElementById('wpTextbox1').value;
  regex = /< *?ref( +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)))? *?>((.|\n)*?)< *?\/? *?ref *?>/gim //"
  var allrefs = new Array();
  var i=0;
  var nr=true;
  do {
    ref = regex.exec(text);
    if(ref != null){
      if (ref[0].search(/[^\s]{150}/) != -1) {
        ref[0] = ref[0].replace(/\|([^\s])/g, "| $1");
      }
      ref[0] = ref[0].replace(/</g, "&lt;");
      ref[0] = ref[0].replace(/>/g, "&gt;");
      allrefs[i] = ref[0];
      i++;
    } else {
      nr=false;
    }
  } while (nr==true);
  return allrefs;
}
 
function NRcallError(namedrefs, refname) {
  for (var i=0; i<namedrefs.length; i++) {
    if (namedrefs[i] == refname) {
      return true;
    }
  }
  return false;
}
 
 // Erreferentziekin lotutako erroreak bilatzeko
function errorCheck() {
  var allrefs = getAllRefs();
  var allrefscontent = new Array();
  var samecontentexclude = new Array();
  var sx=0;
  var templateexclude = new Array();
  var tx=0;
  var skipcheck = false;
  var namedrefcalls = getNamedRefs(true);
  for (var i=0; i<allrefs.length; i++) {
    allrefscontent[i] = allrefs[i].replace(/&lt; *?ref( +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)))? *?&gt;((.|\n)*?)&lt; *?\/? *?ref *?&gt;/gim, "$8");  //"
  }
  var namedrefs = getNamedRefs(false);
  var errorlist = new Array();
  var q=0;
  unclosed = document.getElementById('unclosed').checked;
  samecontent = document.getElementById('samecontent').checked;
  templates = document.getElementById('templates').checked;
  repeated = document.getElementById('repeated').checked;
  undef = document.getElementById('undef').checked;
  for (var i=0; i<allrefs.length; i++) {
    if (allrefs[i].search(/&lt; *?\/ *?ref *?&gt;/) == -1 && unclosed) {
      errorlist[q] = '<tr><td width="75%"><tt>'+allrefs[i]+'</tt></td>';
      errorlist[q] += '<td width="25%">Itxi gabeko <tt>&lt;ref&gt;</tt> etiketa</td></tr>';
      q++;
    }
    if (samecontent) {
      for (var d=0; d<samecontentexclude.length; d++) {
        if (allrefscontent[i] == samecontentexclude[d]) {
          skipcheck = true;
        }
      }
      var p=0;
      while (p<allrefs.length && !skipcheck) {
        if (allrefscontent[i] == allrefscontent[p] && i != p) {
          errorlist[q] = '<tr><td width="75%"><tt>'+allrefscontent[i]+'</tt></td>';
          errorlist[q] += '<td width="25%">Hainbat erreferentziak dute eduki hau. Erreferentzi izen bakarra erabili beharko litzateke</td></tr>';
          q++;
          samecontentexclude[sx] = allrefscontent[i]
          sx++;
          break;
        }
        p++;
      }
     skipcheck=false;
    }
    if (templates) {
      if (allrefscontent[i].search(/\{\{erreferentzia/i) == -1) {
        for (var x=0; x<templateexclude.length; x++) {
          if (allrefscontent[i] == templateexclude[x]) {
            skipcheck = true;
          }
        }
        if (!skipcheck) {
          errorlist[q] = '<tr><td width="75%"><tt>'+allrefs[i]+'</tt></td>';
          errorlist[q] += '<td width="25%">Ez du <a href="http://eu.wikipedia.org/wiki/Txantiloi:Erreferentzia">erreferentzia txantiloia</a> erabiltzen</td></tr>';
          q++;
          templateexclude[tx] = allrefscontent[i];
          tx++;
        }
        skipcheck = false;
      }
    }
  }
  if (repeated) {
    var repeatnameexclude = new Array();
    var rx=0;
    for (var k=0; k<namedrefs.length; k++) {
      for (var d=0; d<repeatnameexclude.length; d++) {
        if (namedrefs[k] == repeatnameexclude[d]) {
          skipcheck = true;
        }
      }
      var z=0;
      while (z<namedrefs.length && !skipcheck) {
        if (namedrefs[k] == namedrefs[z] && k != z) {
          errorlist[q] = '<tr><td width="75%"><tt>'+namedrefs[k]+'</tt></td>';
          errorlist[q] += '<td width="25%">Hainbat erreferentziak izen hau dute.</td></tr>';
          q++;
          repeatnameexclude[rx] = namedrefs[z];
          rx++;
          break;
        }
        z++;
      }
     skipcheck = false;
    }
  }
  if (undef) {
    var undefexclude = new Array();
    var ux=0;
    for (var p=0; p<namedrefcalls.length; p++) {
      for (var d=0; d<undefexclude.length; d++) {
        if (allrefscontent[i] == undefexclude[d]) {
          skipcheck = true;
        }
      }
      if (!skipcheck) {
        if (!NRcallError(namedrefs, namedrefcalls[p])) {
          errorlist[q] = '<tr><td width="75%"><tt>'+namedrefcalls[p]+'</tt></td>';
          errorlist[q] += '<td width="25%">Erreferentzi izen hau erabiltzen da baina ez dago definituta</td></tr>';
          q++;
          undefexclude[ux] = namedrefs[p];
          ux++;
        }
      }
      skipcheck = false;
    }
 }
  if (q > 0) {
    return errorlist;
  } else {
    return 0;
  }
}
 
 // Aurkitutako erroreak bistaratzeko
function dispErrors() {
  oldFormHide();
  form = '<div id="errorform"><fieldset>'+
    '<legend>Erroreak bilatu</legend>'+
    '<b>Ondorengoak bilatu:</b><br/>'+
    '<input type="checkbox" id="unclosed" checked /> Itxi gabeko <tt>&lt;ref&gt;</tt> etiketak<br/>'+
    '<input type="checkbox" id="samecontent" checked /> Eduki berdina duten erreferentziak<br/>'+
    '<input type="checkbox" id="templates" checked /> <a href="http://eu.wikipedia.org/wiki/Txantiloi:Erreferentzia">Erreferentzia txantiloia</a> erabiltzen ez duten erreferentziak<br/>'+
    '<input type="checkbox" id="repeated" checked /> Izen berdina duten hainbat erreferentzia<br/>'+
    '<input type="checkbox" id="undef" checked /> Definitu gabeko eta erabiltzen diren erreferentzia izenak<br/>'+
    '<input type="button" id="errorchecksubmit" value="Aukeratutako erroreak bilatu" onclick="doErrorCheck()"/>'+
    '</fieldset></div>';
  document.getElementById('citeselect').innerHTML += form;
}
 
function doErrorCheck() {
  var errors = errorCheck();
  document.getElementById('citeselect').removeChild(document.getElementById('errorform'));
  if (errors == 0) {
    if (numforms != 0) {
      document.getElementById('citediv'+numforms).style.display = 'none';
    }
    numforms++;
    out = '<div id="citediv'+numforms+'"><fieldset>'+
      '<legend>Erroreak bilatu</legend>Ez da errorerik aurkitu.</fieldset></div>';
    document.getElementById('citeselect').innerHTML += out;
  }
  else {
    if (numforms != 0) {
      document.getElementById('citediv'+numforms).style.display = 'none';
    }
    numforms++;
    form = '<div id="citediv'+numforms+'">'+
      '<fieldset><legend>Erroreak bilatu</legend>'+
      '<table class="wikitable sortable">';
    for (var i=0; i<errors.length; i++) {
      form+=errors[i];
    }
    form+= '</table>'+
      '</fieldset></div>';
     document.getElementById('citeselect').innerHTML += form;
  }
}

 // [[Txantiloi:Erref behar]] eta [[Txantiloi:Erreferentzia falta]]ko "data" parametroa automatikoki betetzeko
var months = ['urtarrila', 'otsaila', 'martxoa', 'apirila', 'maiatza', 'ekaina',
  'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'];
var errefBeharFaltaData = "<year>eko <monthname>";
 // "e"ko jartzen du 2010 urtea delako. 2011an sartzean ALDATU EGIN BEHARKO LITZATEKE
function gaurkoData() {
  var datestr = errefBeharFaltaData;
  var DT = new Date();
  var zmonth = '';
  var month = DT.getUTCMonth()+1;
  if (month < 10) {
    zmonth = "0"+month.toString();
  } else {
    zmonth = month.toString();
  }
  month = month.toString();
  var zdate = '';
  var date = DT.getUTCDate()
  if (date < 10) {
    zdate = "0"+date.toString();
  } else {
    zdate = date.toString();
  }
  date = date.toString()
  datestr = datestr.replace('<date>', date);
  datestr = datestr.replace('<month>', month);
  datestr = datestr.replace('<zdate>', zdate);
  datestr = datestr.replace('<zmonth>', zmonth);
  datestr = datestr.replace('<monthname>', months[DT.getUTCMonth()]);
  datestr = datestr.replace('<year>', DT.getUTCFullYear().toString());
  return (datestr);
}
 
 // [[Txantiloi:Erref behar]] erabiltzeko
function errefBehar() {
  oldFormHide();
  txantiloia = "erref behar";
  newtime = gaurkoData();
  numforms++;
  form = '<div id="citediv'+numforms+'">'+
    '<fieldset><legend>Pasarte edo esaldiak <a href="http://eu.wikipedia.org/wiki/Txantiloi:Erref_behar">erreferentzia behar</a> du</legend>'+
    '<table cellspacing="5">'+
    '<input type="hidden" value="'+txantiloia+'" id="txantiloia">'+
    '<tr><td width="60"><label for="data">&nbsp;Data: </label></td>'+
      '<td width="460"><input type="text" tabindex=1 style="width:100%" id="data" value="'+ newtime +'"></td>'+
    '<td width="60"><label for="arrazoia">&nbsp;Arrazoia: </label></td>'+
      '<td width="460"><input type="text" tabindex=1 style="width:100%" id="arrazoia"></td></tr>'+
    '</table>'+
    '<input type="button" value="Gehitu erref. behar" onClick="errefGehitu()">'+
 '</fieldset></div>';
   document.getElementById('citeselect').innerHTML += form;
}
 
 // [[Txantiloi:Erreferentzia falta]]n "Deskribapena" idazteko lekua "Atal" hitzarekin klik batekin betetzeko
function atalDeskribapenean() {
  var fields = document.getElementById('citediv'+numforms).getElementsByTagName('input');
  for (var i=0; i<fields.length; i++) {
    if(fields[i].id == 'deskribapena') {
      fields[i].value = 'Atal';
      return;
    }
  }
}
 
 // [[Txantiloi:Erreferentzia falta]] erabiltzeko
function errefFalta() {
  oldFormHide();
  txantiloia = "erreferentzia falta";
  newtime = gaurkoData();
  numforms++;
  form = '<div id="citediv'+numforms+'">'+
    '<fieldset><legend>Artikuluak edo bere atal oso batek <a href="http://eu.wikipedia.org/wiki/Txantiloi:Erreferentzia_falta">erreferentzia falta</a> du</legend>'+
    '<table cellspacing="5">'+
    '<input type="hidden" value="'+txantiloia+'" id="txantiloia">'+
    '<tr><td width="100"><label for="data">&nbsp;Data: </label></td>'+
      '<td width="420"><input type="text" tabindex=1 style="width:100%" id="data" value="'+ newtime +'"></td>'+
    '<td width="100"><label for="">&nbsp;Deskribapena: </label></td>'+
      '<td width="460"><input type="text" tabindex=1 style="width:74%" id="deskribapena"><input type="button" value="< Atala" onClick="atalDeskribapenean()"></td></tr>'+
    '</table>'+
    '<input type="button" value="Gehitu erreferentzia falta" onClick="errefGehitu()">'+
 '</fieldset></div>';
   document.getElementById('citeselect').innerHTML += form;
}
 
 // [[Txantiloi:Erreferentzia zerrenda]]n "Zutabe kopurua" idazteko lekua "2" letrarekin klik batekin betetzeko
function zutabeKop() {
  var fields = document.getElementById('citediv'+numforms).getElementsByTagName('input');
  for (var i=0; i<fields.length; i++) {
    if(fields[i].id == 'zutabekop') {
      fields[i].value = '2';
      return;
    }
  }
}
 
 // [[Txantiloi:Erreferentzia zerrenda]] erabiltzeko
function errefZerrenda() {
  oldFormHide();
  txantiloia = "erreferentzia zerrenda";
  numforms++;
  form = '<div id="citediv'+numforms+'">'+
    '<fieldset><legend>Artikuluko erreferentziak <a href="http://eu.wikipedia.org/wiki/Txantiloi:Erreferentzia_zerrenda">zerrendan</a> bildu</legend>'+
    '<table cellspacing="5">'+
    '<input type="hidden" value="'+txantiloia+'" id="txantiloia">'+
    '<tr><td width="125"><label for="zutabekop">&nbsp;Zutabe kopurua: </label></td>'+
      '<td width="400"><input type="text" tabindex=1 style="width:74%" id="zutabekop"><input type="button" value="< 2" onClick="zutabeKop()"></td></tr>'+
    '</table>'+
    '<input type="button" value="Gehitu erreferentzia zerrenda" onClick="errefGehitu()">'+
 '</fieldset></div>';
   document.getElementById('citeselect').innerHTML += form;
}
 
 // Goragoko [[Txantiloi:Erref behar]], [[Txantiloi:Erreferentzia falta]], [[Txantiloi:Erreferentzia zerrenda]]
 // erabiltzen duten atalek, behin parametroak zehaztuta, txantiloia idazteko
function errefGehitu(txantiloia) {
  cites = document.getElementById('citediv'+numforms).getElementsByTagName('input');
  var citename = '';
  var citeinner = '';
  for (var i=0; i<cites.length-1; i++) {
    var citeid = cites[i].id;
    var citevalue = cites[i].value;
    citevalue = citevalue.replace(/^\s*(.*?)\s*$/, "$1");    //Trim leading and trailing whitespace
    if (citevalue != '' && citevalue != '< Atala' && citevalue != '< 2') {
      if (citeid == "txantiloia") {
        citename = '{{' + citevalue;
      }
      else if (citeid == "deskribapena") {
        citeinner += " |" + citevalue;
      }
      else if (citeid == "zutabekop") {
        citeinner += "|" + citevalue;
      }
      else  {
        citeinner += " |" + citeid + " = " + citevalue;
      }
    }
  }
  cite = citename + citeinner + "}}";
  insertTags(cite, '', '');
  document.getElementById('citediv'+numforms).style.display = 'none';
}
 
hookEvent("load", refbuttons);