// Aquestes funcions necessiten de prototype.js per funcionar
// Fent un include d'aquest fitxer, no deixarem entrar caràcters estranys de word
// A qualsevol camp de text. Es totalment inobstrusiu


// Aquesta funcio es la que neteja un camp "e" concret.
// Treu apostrofs i cometes tipografiques
function netejaMerdaDelWord(e) {			
        x=e.value;
        x=x.replace(/`/g,'\'');
        x=x.replace(/´/g,'\'');
        x=x.replace(/\u2018/g,'\'');
        x=x.replace(/\u2019/g,'\'');
        x=x.replace(/\u201c/g,'\"');
        x=x.replace(/\u201d/g,'\"');
        e.value=x;
}

// L'event onPaste es crida just despres del paste, quan encara no hem canviat
// les dades del camp que ha provocat l'event. 
// Fem la crida 1ms després i cap problema.
function netejaMerdaDelWordPaste(e) {			
	el=Event.element(e);	
    setTimeout(
    	function() {netejaMerdaDelWord(el)}
    	,1);
}

// L'event onInput es crida amb les dades ja modificades
// Aixi que netejem directament
function netejaMerdaDelWordInput(e) {			
	el=Event.element(e);
    netejaMerdaDelWord(el);
}

// Iterem un array amb tots els inputs i textareas
// i els hi assignem el neteja merda a l'event "onInput" i "onPaste"
// Necessitem els 2 events logicament perque diferents navegadors es comporten
// diferent, ja que els events aquests no son dels estandards.
// (per cert, molt practics el $$ i la funcio "each" del prototype)
function netajaMerdaDeTotsElsCamps() {
  $$("input","textarea").each(  	
  	function(e) {
	  	e.observe('paste',netejaMerdaDelWordPaste);
	  	e.observe('input',netejaMerdaDelWordInput);
	}
  );
}

Event.observe(
  window, 
  'load', 
  function() {
    netajaMerdaDeTotsElsCamps();
  }
);

