function $(id){
   return document.getElementById(id);
}

function edita(){
   //Creem element textarea
   var ta = document.createElement("textarea");
   ta.setAttribute("name","cartaed");
   ta.setAttribute("rows","15");
   ta.setAttribute("cols","125");

   //Recuperem el text per posar-lo al textarea
   //var t = document.createTextNode($("carta").childNodes[0].nodeValue);
   var t = document.createTextNode(getContentElementObj($("carta")));
   ta.appendChild(t);

   //Reemplacem el p pel textarea
   var pare = $("carta").parentNode;
   pare.replaceChild(ta,$("carta"));

   //Esborrem el div amb la possibilitat d'editar
   pare = $("edita").parentNode;
   pare.removeChild($("edita"));
}

function enviatextocult(){
   //Creem element input hidden
   var hi = document.createElement("input");
   hi.setAttribute("name","cartaed");
   hi.setAttribute("type","hidden");

   //Recuperem el text per posar-lo al input
   var t = document.createTextNode(getContentElementObj($("carta")));
   hi.setAttribute("value",t.nodeValue);

   //Afegim el input hidden
   var pare = $("carta").parentNode;
   pare.appendChild(hi);
}


function validatext(){
   if(!$("cartaed")){
      enviatextocult();
   }
   return false;
}


/*
Funció: getContentElementObj(elementid)
Descripció: Recuperem el contingut d'un element usant DOM
Parametres:
(String) obj: objecte del qual volem recuperar el contingut
Retorn:
(String): contingut de l'element
*/

function getContentElementObj(obj) {
   var txt = new Array();
   var i=0;

   // si el node és de tipus text el retornem
   if (obj.nodeType == 3)
      return obj.nodeValue;

   // recorrem tots els fills de l'objecte i cridem recursivament la funció
   while(obj.childNodes[i]) {
      txt[txt.length] = getContentElementObj(obj.childNodes[i]);
      i++;
   }
   
   // return the array as a string
   return txt.join("");
}

